ausnahmefehler
-
Wie kann man es programmieren , das in einer Textdatei nur Zahlen und keine Buchstaben stehen dürfen.
-
Unter anderem mit if-Abfragen.
-
Das ist mir schon klar aber wie definiere ich Buchstaben
-
if(isalpha(buchstabe))
...?
Stell mal konkretere Fragen, dann erhälst du konkretere Antworten.
-
Wie kann man es programmieren , das in einer Textdatei nur Zahlen und keine Buchstaben stehen dürfen.
Ich würde mal sagen, prinzipiell gar nicht.
-
In der Windowsprogrammierung kann man folgendes tun:
Man nehme ein Memo (ich nenn es mal Memo1):
int i, j; bool ziffer=true; Memo1->Lines->LoadFromFile(String); // lädt eine Textdatei in Memo1 for(i=0;Memo1->Lines->Strings[i]!="";i++) // geht Memo1 so lange durch, // bis Zeile i von Memo1="" ist for(j=0;j<Memo1->Lines->Strings[i].Length();j++) // geht jedes einzelnes // Zeichen der // Zeile durch if (!IsDigit(Memo1->Lines->Strings[i][j])) // Wenn Zeichen // keine Ziffer ist { ziffer=false; break; } // Ende der for(;;)-Schleifen if (!ziffer) { // Hier kommen die Anweisungen hin, wenn ein Zeichen keine Ziffer ist }
-
Hi!
@Spieleprogrammiere
Was du vorschlägst ist aber leider Borlandspezifisch und somit wohl nicht das was <sunny> sucht.
-
Original erstellt von PuppetMaster2k:
**Hi!@Spieleprogrammiere
Was du vorschlägst ist aber leider Borlandspezifisch und somit wohl nicht das was <sunny> sucht.**
Naja, fast, man müsste noch das Objekt Memo deklarieren, definieren und sowas, das ist bei Borland schon drin, ok.
Aber hier mal die Lösung für alle Konsolenprogrammierer:
#include<iostream> #include<sstream> #include<cstdlib> using namespace std; main() { string str, temp; int i; bool ziffer=true; ifstream lesen=fopen("Datei.txt"); ofstream schreiben=fopen("Datei.txt"); for(i=0;lesen[i]!='\0';i++) { lesen>>temp; // Liest nur bis Leerzeichen in Datei.txt str=str+temp; // addiert zum String temp.erase(0); schreiben<<temp; } fclose(lesen); for(i=0;i<str.length();i++) if (!isdigit(str[i])) { ziffer=false; break; } if (!ziffer) cout<<"Dies ist keine Zahl!"; else cout<<"Dies ist eine Zahl!"; schreiben<<str; fclose(schreiben); cin.get(); }
[ Dieser Beitrag wurde am 26.05.2003 um 11:41 Uhr von Spieleprogrammierer editiert. ]
[ Dieser Beitrag wurde am 26.05.2003 um 11:42 Uhr von Spieleprogrammierer editiert. ]
-
ifstream lesen=fopen("Datei.txt");
ofstream schreiben=fopen("Datei.txt");Na das passt nicht. fopen liefert einen Zeiger auf die Struktur FILE zurück.
Das was da steht ist somit falsch.Es müsste heissen:
ifstream lesen("Datei.txt");
Zudem ist es keine gute Idee die Datei zum lesen und separat zum schreiben auf einmal zu öffnen.