checko Geschrieben 17. September 2009 Geschrieben 17. September 2009 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 Zitieren
TDM Geschrieben 17. September 2009 Geschrieben 17. September 2009 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. Zitieren
checko Geschrieben 17. September 2009 Autor Geschrieben 17. September 2009 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 Zitieren
TDM Geschrieben 17. September 2009 Geschrieben 17. September 2009 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); } } Zitieren
checko Geschrieben 17. September 2009 Autor Geschrieben 17. September 2009 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 Zitieren
Klotzkopp Geschrieben 17. September 2009 Geschrieben 17. September 2009 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. Zitieren
checko Geschrieben 17. September 2009 Autor Geschrieben 17. September 2009 Hi TDM, Ich kann nur sagen: Vieeeeelen Dank für deine Hilfe. Ohne dich wäre ich aufgeschmissen gewesen. Gruß checko Zitieren
RipperFox Geschrieben 18. September 2009 Geschrieben 18. September 2009 soso.. Hausaufgaben fertig, ne? ::D:D Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.