PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C]in System() einen weiteren Parameter



KnechtRuprecht
30.09.2010, 12:49
Hey,

ich wollte ein Programm schreiben, dass eine Datei auf einen USB-Stick öffnet.
Nun sieht es wie folgt aus.
Der USB-Stick bekommt meist einen anderen Laufwerkbuchstaben zugeteilt,
wenn er von Rechner zu Rechner wechselt.
Ich wollte das Programm so schreiben, dass am Anfang nach dem Laufwerkbuchstaben gefragt wird.
Nun, kann man das ja nicht so leicht in einen system() oder shellexecute()-Befehl einbauen.
Geht das überhaupt?
Und gibt es andere Möglichkeiten ein Programm mit system() etc. aufzurufen.

- Man kann klar eine switch()-Funktion einbauen, aber wenn es leichtere/schnellere Möglichkeiten gibt, wäre es besser.

Ich glaube, dass ich keinen Code von der printf(), der scanf() und der system()-Funktion reinstellen muss, da es eigentlich klar ist.
[Auf Anfrage mache ich es natürlich]

Vielen Dank.

ali-g
30.09.2010, 14:40
vieleicht switch case ????

kein plan

blackberry
30.09.2010, 16:11
#include <stdio.h>
#include <windows.h>

int main(void)
{
// 26 Buchstaben im Alphabet * 4 Zeichen pro Laufwerk (BUCHSTABE:\ + Null-Zeichen)
char buffer[26 * 4];
unsigned int length;
char *ptr = buffer;

// http://msdn.microsoft.com/en-us/library/aa364975%28VS.85%29.aspx
length = GetLogicalDriveStringsA(sizeof(buffer) - 1, buffer);

while(length-- > 0)
{
// \x00 -> \n
if (!*ptr) *ptr = '\n';
printf("%c", *ptr++);
}
return 0;
}

Der Rest sollte klar sein.

blackberry
30.09.2010, 16:22
Es ging mir bei dem Code auch eher darum zu zeigen, wie man alle Laufwerke auflistet und dann automatisch prüfen könnte, welches Laufwerk man benutzen will. Was die Eingabe des Laufwerkbuchstabens betrifft: Operationen mit Strings sind wirklich Basics - da würde ich dem TS einfach empfehlen nachzudenken, ob es nicht ratsam wäre C nochmal von Anfang an zu lernen.

KnechtRuprecht
30.09.2010, 16:26
Mit switch-funktion meinte ich eigentlich :


switch(Beispiel)
{
case 1: printf("Hallo");
break;
case 2: return 0;
break;
}


@OpCodez,
das mit - von der Konsole etc. lesen, habe ich noch nicht drauf.

KnechtRuprecht
30.09.2010, 16:40
Ja, ich weiß was eine Funktion ist, aber mir ist kein anderer Begriff eingefallen. xD
Okay, ich werde es versuchen und dann posten.