cin.Get
-
Hi zusammen
ich will in meiner Methode einen Pfad einlesen.
hier mal ein Ausschnitt aud meinem QT:class Datei_erstellen { char dateiname[30]; char dateipfad[100]; public: void getpfad(); void getdateiname(); void erstelledatei(); }; void Datei_erstellen::getpfad() { cout << endl << "Bitte geben Sie den Pfad der Datei ein: "; cin.get(dateipfad, 99); //cin >> dateipfad; }
Jedoch rennt er bei getpfad() durch, ohne dass ich was eingeben kann.
Wenn ich aber cin >> dateipfad, dann klappt es.
Woran liegt das ? Dass mit cin.get stimmt doch oder?thx for help
cya
alligator
Bitte Code-Tags benutzen![ Dieser Beitrag wurde am 21.04.2003 um 17:39 Uhr von HumeSikkins editiert. ]
-
cin.get sollte funktionieren. zeig mal etwas mehr code.
deine char arrays haben eine fixe größe, auch wenn der pfad nur 8 zeichen lang ist, werden 100byte dafür belegt.
deshalb nimmt man hier üblicherweise std::string:#include <string> #include <iostream> class datei_erstellen { std::string pfad; std::string dateiname; public: //... void get_pfad () { std::cout << "\nPfad eingeben: "; std::getline (std::cin, pfad); } }; //wenn du jetzt einen const char * brauchst, rufst du einfach std::string's funktion //c_str() auf. //du solltest mal nach der std::string klasse googeln. die ist echt praktisch
vielleicht hilft es, wenn du vor get schreibst:
cin.clear(); //fehlerstatus löschen cin.ignore (cin.rdbuf()->in_avail()); //buffer leeren
-
Hi hier erstmal mein QT:
#include <iostream.h> //für cin,cout #include <conio.h> #include <stdio.h> //für FILE #include <string.h> // wird für strcpy/strncpy/strcat benötigt class Datei_erstellen { char dateiname[30]; char dateipfad[100]; public: void getpfad(); void getdateiname(); void erstelledatei(); }; void Datei_erstellen::getpfad() { cout << endl << "Bitte geben Sie den Pfad der Datei ein: "; cin.get(dateipfad, 99); //cin >> dateipfad; } void Datei_erstellen::getdateiname() { cout << endl << "Bitte geben Sie den Dateinamen ein: "; cin.get(dateiname, 29); } void Datei_erstellen::erstelledatei() { cout << endl << "strcat: " <<(strcat(dateipfad,dateiname); } int main () { char abfrage; cout << " Willkommen im ME-Dateiprogramm " << endl; cout << "a - Datei erstellen"<<endl; cout << "b - Datei kopieren"<<endl; cout << "0 - Programm Ende"<<endl; cin >> abfrage; if (abfrage=='a') { Datei_erstellen file; file.getpfad(); file.getdateiname(); file.erstelledatei(); } if (abfrage=='b') { cout << "b"; } cout << endl <<"bye bye"; getch(); }
Ojee ich glaub ich bin so ziemlich in C und nicht in C++.
Puhh noch ne Menge Arbeit vor mir.cya
alligator
Bitte Code-Tags benutzen![ Dieser Beitrag wurde am 21.04.2003 um 17:41 Uhr von HumeSikkins editiert. ]