Hey!
Wie der Titel sagt, soll es um das Game Of Life gehen. In einer, wie ich finde, einfachen Form. Das erstellen an sich mit Ausgabe über die Konsole dürfte kein großes Problem darstellen. Darum soll es letztlich also nicht gehen.
Mein Problem ist, dass ich noch nie Dateien eingelesen bzw. in Dateien ausgegeben habe. Mir liegt z.B. eine solche .txt vor:
Einfach durch Leerzeichen getrennt. Das sind quasi Koordinaten von lebendigen Zellen. Das soll eingelesen werden und anhand dessen das Programm mit i Iterationen laufen. Die Ausgabe der einzelnen Iterationen soll auf dem Bildschirm erfolgen. Zusätzlich soll die letzte Iteration in eine .txt geschrieben werden. In dem gleichen Format wie sie eingelesen wurde. Zeilen mit einem "#" am Anfang sind Kommentare und sollen überlesen werden.
Und da stehe ich schon vor den ersten Problemen:
Ich habe wie gesagt keine Ahnung vom einlesen und ausgeben von / in Dateien. Ich habe jetzt ein wenig rumprobiert, das stimmt mich aber noch nicht wirklich glücklich. Vor allem weiß ich nicht, wie ich die Zeilen mit einem "#" ignoriere, oder wie ich die einzelnen Koordinaten irgendwo übergebe, damit ich die verwenden kann.
Ausserdem soll noch folgendes gemacht werden (Leider auch noch nie mit gearbeitet):
Beim Programmaufruf sind 4 Parameter zu übergeben: die Dimensionen n (Zeilen) und m (Spalten) sowie der Name der Eingabedatei und die Anzahl der Iterationen i
Wäre super wenn mir jemand helfen könnte :]
edit:
Arbeite mit Visual Studio oder Dev-C++
Vorgabe ist, das ganze in C zu machen.
edit 2:
Ich habe es immerhin soweit, dass ich das, was in der einen Datei steht, in eine andere schreiben kann. Im Prinzip wollte ich das nur machen, um drauf zu kommen, wie es weiter geht. Wirklich geholfen hat es leider nicht :/
Bestimmt nicht schön, aber es sind ja auch nur Anfänge :/
Wie der Titel sagt, soll es um das Game Of Life gehen. In einer, wie ich finde, einfachen Form. Das erstellen an sich mit Ausgabe über die Konsole dürfte kein großes Problem darstellen. Darum soll es letztlich also nicht gehen.
Mein Problem ist, dass ich noch nie Dateien eingelesen bzw. in Dateien ausgegeben habe. Mir liegt z.B. eine solche .txt vor:
Code:
#Life 1.06
1 3
0 1
1 0
1 2
2 0
Einfach durch Leerzeichen getrennt. Das sind quasi Koordinaten von lebendigen Zellen. Das soll eingelesen werden und anhand dessen das Programm mit i Iterationen laufen. Die Ausgabe der einzelnen Iterationen soll auf dem Bildschirm erfolgen. Zusätzlich soll die letzte Iteration in eine .txt geschrieben werden. In dem gleichen Format wie sie eingelesen wurde. Zeilen mit einem "#" am Anfang sind Kommentare und sollen überlesen werden.
Und da stehe ich schon vor den ersten Problemen:
Ich habe wie gesagt keine Ahnung vom einlesen und ausgeben von / in Dateien. Ich habe jetzt ein wenig rumprobiert, das stimmt mich aber noch nicht wirklich glücklich. Vor allem weiß ich nicht, wie ich die Zeilen mit einem "#" ignoriere, oder wie ich die einzelnen Koordinaten irgendwo übergebe, damit ich die verwenden kann.
Ausserdem soll noch folgendes gemacht werden (Leider auch noch nie mit gearbeitet):
Beim Programmaufruf sind 4 Parameter zu übergeben: die Dimensionen n (Zeilen) und m (Spalten) sowie der Name der Eingabedatei und die Anzahl der Iterationen i
Wäre super wenn mir jemand helfen könnte :]
edit:
Arbeite mit Visual Studio oder Dev-C++
Vorgabe ist, das ganze in C zu machen.
edit 2:
Ich habe es immerhin soweit, dass ich das, was in der einen Datei steht, in eine andere schreiben kann. Im Prinzip wollte ich das nur machen, um drauf zu kommen, wie es weiter geht. Wirklich geholfen hat es leider nicht :/
C++:
#include <stdio.h>
#include <stdlib.h>
// Main
int main(int argv, char **argc) {
const char LIFE[] = "life.txt";
const char LIFEOUT[] = "lifeout.txt";
FILE *ein = fopen (LIFE, "r");
FILE *aus = fopen (LIFEOUT, "w");
int i = 0, n = 1;
char c;
char buffer[100];
if ( ( ein == NULL) || (aus == NULL ) ) {
printf ("Fehler beim Oeffnen der Datei\n");
EXIT_FAILURE;
} else {
while ( ( c = fgetc(ein) ) != EOF ) {
fputc (c, aus);
putc (c, stdout);
}
}
fclose(ein);
fclose(aus);
system("PAUSE");
return 0;
}
Bestimmt nicht schön, aber es sind ja auch nur Anfänge :/
Zuletzt bearbeitet: