Leerzeichen im Dateipfad



  • Hallo, ich mache meine ersten Versuche mit C++ und habe jetzt ein Konsolenprogramm gemacht, in welches man 2 Dateinamen eingibt und das Programm kopiert den Inhalt einer Datei in die andere.

    char ifile[100];
    	char ofile[100];
    
    	ifstream input;
    	ofstream output;
    
    	cout << "Input the name of the file you want to copy!" << endl;
    	cin >> ifile;
    
    	if (!input)
    	{
    		cout << "File could not be open. Check if it exists!" << endl;
    		exit;
    	}
    	input.open(ifile);
    
    	cout << endl << "Now input the name of the output file!" << endl;
    	[b]cin >> ofile;[/b]
    
    	if (!output)
    	{
    		cout << "File could not be open. Check if it exists!" << endl;
    		exit;
    	}
    	output.open(ofile);
    

    HIER hängt es! Ich habe alles mehrmals langsam mit dem Debugger durchgefahren und habe gemerkt, dass nicht auf die Eingabe des Benutzers gewartet wird. Kann mir jemand sagen, was falsch sein könnte?



  • beim debuggen ist mir gerade noch etwas aufgefallen.

    Beim ersten "cin" wird:
    C:\Dokumente und Einstellungen\Gast\Desktop\test.txt
    eingegeben.

    Danach lasse ich mir gleich den Inhalt der Variablen anzeigen:
    C:\Dokumente

    Daraus schließe ich, dass cin Probleme mit Leerzeichen hat?



  • hi,
    cin liest bis zum ersten leeerzeichen, dann ist schluss.
    nimmsu getline:

    string buf;
    	getline ( cin, buf ); 
    
    	if ( false == buf.empty() )
    		cout << "Eingabe war: " << buf << endl;
    

Anmelden zum Antworten