Veröffentlicht 17. September 200915 j Hi @all, Ich habe folgendes Problem bzw. weiß nicht wie ich das Programmtechnisch umsetzen kann. Ich möchte eine for-Schleife schreiben, in der in jedem Schleifendurchgang nach erfolgter Rechnung die Ergebnisse in eine Datei geschrieben werden. Nun das Problem: Die Datei sollte in jedem Schleifendurchgang einen anderen Namen haben, so dass ich sie unterscheiden kann. Dies wollte ich gerne durch eine Variable steuern, so dass die Datei den Namen Variable.dat hätte. Die Variable wird dann um einen Wert erhöht, sodass die nächste Datei einen anderen Namen hat, nämlich Variable+x.dat. Die Variable ist eine Zahl. Bsp.: Erste Datei heisst: 12.dat Zweite Datei heisst: 15.dat Dritte Datei heisst: 18.dat usw. usw. Kann man sowas mit C programmieren? Eine andere Frage wäre noch: Kann man dem Programm irgendwie sagen, dass er die neuen Zahlen nicht unter die vorherigen Zahlen schreibt, sondern jeweils mit einem Tab getrennt hinter die Zahl. Ich meine folgendes: i=0 (i ist die Laufvariable einer Schleife) a b c d e f usw. i=1 a 1 b 2 c 3 d 4 usw. Vielen Dank schon mal im voraus. Ich hoffe auf eine schnelle Antwort. Gruß checko
17. September 200915 j Ich möchte eine for-Schleife schreiben, in der in jedem Schleifendurchgang nach erfolgter Rechnung die Ergebnisse in eine Datei geschrieben werden. Nun das Problem: Die Datei sollte in jedem Schleifendurchgang einen anderen Namen haben, so dass ich sie unterscheiden kann. Dies wollte ich gerne durch eine Variable steuern, so dass die Datei den Namen Variable.dat hätte. Die Variable wird dann um einen Wert erhöht, sodass die nächste Datei einen anderen Namen hat, nämlich Variable+x.dat. Die Variable ist eine Zahl. Kann man sowas mit C programmieren? Datei aufText reinDatei zu Wo ist das Problem? Kann man dem Programm irgendwie sagen, dass er die neuen Zahlen nicht unter die vorherigen Zahlen schreibt, sondern jeweils mit einem Tab getrennt hinter die Zahl. \t ist der Tab. Du darfst halt nur keinen Zeilenumbruch machen.
17. September 200915 j Hi TDM, Das Problem ist, dass die Datei in jedem Schleifendurchgang einen anderen Namen haben soll. So dass die neuen werte in eine ANDERE Datei geschrieben werden soll. Der Ablauf mal ganz konkret: i=0 (i Laufvariable der for-Schleife) Rechnung Schreiben der Ergebnisse in eine Datei "x.dat". i=1 (2. Durchgang) Rechnung (mit etwas anderen Zahlen) Schreiben der neuen Ergebnisse in eine andere Datei "y.dat". i=2 (3. Durchgang) Rechnung (") Schreiben der neuen Ergebnisse in eine dritte Datei "z.dat". Das mache ich aber jetzt nicht 3 mal, sondern vllt. 10 mal. Verstehst du was ich meine? Gruß checko
17. September 200915 j Ja, das ist schon klar, aber du sollst ja nicht den Dateiname einfach ändern sondern eine neue Datei aufmachen... void writeValue(int value, const char* data, int dataLength); void write(const char* fileName, const char* data, int dataLength); int main(int argc, char* argv[]) { int i; for(i = 0; i < 10; i++) { writeValue(i, "abc", 3); } return 0; } void writeValue(int value, const char* data, int dataLength) { char buffer[100]; sprintf(buffer, "%i.dat", value); write(buffer, data, dataLength); } void write(const char* fileName, const char* data, int dataLength) { FILE* pFile; pFile = fopen(fileName, "w"); if(pFile != NULL) { fwrite(data, sizeof(char), dataLength, pFile); fflush(pFile); fclose(pFile); } }
17. September 200915 j Hi TDM, Das sieht schon interessant aus. Zum Verständnis würde ich gerne die Bedeutung von folgenden Keywords wissen. 1. sprintf 2. sizeof(char) 3. fflush 4. fwrite Wäre nett, wenn du mir das noch erklären könntest. Gruß checko
17. September 200915 j Zum Verständnis würde ich gerne die Bedeutung von folgenden Keywords wissen.Von denen ist nur sizeof ein Schlüsselwort, die anderen sind Funktionen der Standardbibliothek. sprintf ist dasselbe wie printf, nur dass das Ergebnis nicht auf die Konsole, sondern in einen char-Puffer ausgegeben wird. sizeof ist ein Operator, der zur Compilezeit die Größe eines Typs (oder des Typs eines Ausdrucks) ermittelt, und zwar relativ zur Größe von char. sizeof(char) ist definitionsgemäß 1. fflush erzwingt das Schreiben von gepufferten Zeichen in einen Ausgabestream. Ist hier m.M.n. unnötig. fwrite schreibt Daten in einen Ausgabestream.
17. September 200915 j Hi TDM, Ich kann nur sagen: Vieeeeelen Dank für deine Hilfe. Ohne dich wäre ich aufgeschmissen gewesen. Gruß checko
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.