033
25.07.2004, 13:48 Uhr
~Nachtträumer
Gast
|
Ich habe die sache mal entsprechend erweitert. Jetzt kommt es dem gewünschten ergebnis schon näher. (ist checkzahl in trash.txt dann nimm die nächste zahl. ist checkzahl nicht in trash.txt schreib sie in ok.txt und rechne checkzahl*2, *3, *4, *5, schreibe die ergebnisse dann wieder in trash.txt.)
C++: |
// 12345.cpp : neue Datei - Definiert den Einsprungpunkt für die Konsolenanwendung. //
#include <iostream> #include <fstream> using namespace std;
int main(int argc, char* argv[]) { unsigned long l_endzahl; unsigned long l_checkzahl = 1; unsigned long l_checkzahl_tmp = l_checkzahl; const char delim ='x';
cout << "Bitte letzte zu testende Zahl eingeben: "; cin >> l_endzahl;
while(l_checkzahl_tmp <= l_endzahl) { char read_from_file[20]; ifstream read("trash.txt"); //datei öffnen //aus datei lesen while(read.getline(read_from_file,sizeof(read_from_file)/sizeof(char),delim)) /* getline liesst in dass array "read_from_file" bis zum nächsten "delim" */ { l_checkzahl_tmp=atoi(read_from_file); /* checkzahl _tmp bekommt den int aus der datei weil wir aber in nen array lesen müssen wir mittels atoi in nen int wandeln ..nun kannste mit checkzahl_tmp weitermachten z.b mit dem wert von checkzahl vergleichen oder sonst was */ if(l_checkzahl == l_checkzahl_tmp) { //stimmt checkzahl mit zahl aus datei überein erhöhe checkzahl und prüfe nächste zahl l_checkzahl++; } else if (befehl zum feststellen das dateiende erreicht) ///Befehl zum festellen des dateiendes? { //wenn checkzahl nicht trash.txt dann schreibe sie in ok.txt ofstream write("ok.txt", ios::app); //datei öffnen write<<l_checkzahl<<delim; //in die datei schreiben write.close (); l_checkzahl++; } }//while lesen ende read.close (); ofstream write("trash.txt", ios::app); //datei öffnen for(int j=2;j<=5;j++) //checkzahl is nun schon multipliziert { //in die datei schreiben write<<l_checkzahl_tmp*j<<delim; }//for schreiben ende write.close(); //die datei schliessen
} getchar(); return 0; }
|
Folgendes problem ergibt sich hier:
es muss ja irgendwie geprüft werden ob das dateiende schon erreicht ist, um festzustellen ob die checkzahl in ok.txt geschrieben werden kann. |