000
04.03.2006, 22:59 Uhr
Karldin Shinowa
Professional Noob
|
Hier mein Code und mein problem: an den mit !!!! gekennzeichneten stellen scheint er getline zu überspringen......
C++: |
#include<fstream> #include<iostream> #include<string> #include<stdio.h> using namespace std;
int DateiLesen(); int DateiSchreiben();
int main() { char auswahl; bool beenden=false;
while(beenden==false) { system("cls"); cout<<"Datei auslesen[1]"<<endl <<"in Datei schreiben[2]"<<endl; cin>>auswahl; switch(auswahl) { case '1': { system("cls"); DateiLesen(); beenden=true; break; } case '2': { system("cls"); DateiSchreiben(); beenden=true; break; } default: { beenden=false; break; } }
getchar(); } }
int DateiLesen() { char dateiname[50]; char ch; cout<<"Dateiname(max 50 characters):"; cin.getline(dateiname,50);//!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ifstream Datei; Datei.open(dateiname,ios::in|ios::nocreate); if(!Datei) { cout<<"Invalid input"; return -1; } while(!Datei.eof()) { Datei.get(ch); cout<<ch; } Datei.close(); }
int DateiSchreiben() { char dateiname[50]; char text[100]; bool beenden=false; char auswahl; cout<<"Dateiname(max 50 characters):"; cin>>dateiname; ofstream Datei; //testopening begin Datei.open(dateiname,ios::out); if(!Datei) { cout<<"Invalid input"; return -1; } Datei.close(); //testopen end while(beenden==false) { system("cls"); cout<<"Text anhängen?"<<endl <<"JA[1]"<<endl <<"NEIN[2]"<<endl; cin>>auswahl; switch(auswahl) { case '1': { Datei.open(dateiname,ios::out|ios::app|ios::nocreate); beenden=true; break; } case '2': { Datei.open(dateiname,ios::out|ios::trunc|ios::nocreate); beenden=true; break; } default: { beenden=false; break; } } }
cout<<"Text(max 100 character):"; cin.getline(text,100);//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! char ch; int i=0; while(true) { ch=text[i]; if(ch=='\0') break; Datei.put(ch); i++; } Datei.close(); }
|
-- Ich will die Welt verbessern, doch Gott gibt mir nicht den Code. |