Weiß einfach nicht wie ich diese Schleife gescheit hinbekomme!!
-
Hi,
also ich hab folgende Schleife:
while ((c=fgetc(input)) != EOF) { for (c == '#';c != '\n';) { putc(c,test); printf("%c",c); }
Ich möchte ab dem # Zeichen beginnen in die Datei zu schreiben und beim nächsten \n aufhören. Nur werden mir nur 'P's in einer Endlosschleife in die Datei geschrieben und P ist der erste Buchstabe der Datei!
Weiß nicht ganz wie ich das sonst machen soll..mfg max
-
probier so:
int flag = 0; int c; do { c = fgetc (input); if (c == '#' || c == '\n') flag++; if (flag & 1) { putc (c,test); printf("%c",c); } } while (c != EOF);
-
hey danke
edit: aber so ganz haut das nicht hin...
er sollte ja das in die Datei schreiben "# blablabla "bis \n.
Es wird aber alles nach dem \n hineingeschrieben und nicht die eigentlich gewollte Zeile.mfg max
-
madmax20031 schrieb:
hey danke
kein problem
wenn du die zeichen selber nicht mit in die datei schreiben willst, machste einfach vor dem zweiten 'if' ein 'else'
-
madmax20031 schrieb:
Es wird aber alles nach dem \n hineingeschrieben und nicht die eigentlich gewollte Zeile.
da fehlt wohl ein anfängliches '#' ?
-
in der Datei meinst? Da fehlt sicher keins.
Diese Kommentarzeile ist immer drinnen.
-
madmax20031 schrieb:
in der Datei meinst? Da fehlt sicher keins.
Diese Kommentarzeile ist immer drinnen.dann poste doch mal mehr code...
-
ja beim Code passt ja alles. Nur die Schleife selbst funzt nicht.
Ich möchte eben nur wissen auf welche Weise man ab einem zeichen bis zu einem Zeichen lesen kann. Muss nämlich ein Programm für die Uni schreiben, Code darf ich auch nicht posten, weil es sonst als Plagiat zählen könnte.
Es müssen Header Dateien zuerst ausgelesen werden( Art des Formats, Auflösung, Kommentare, usw). Und dafür bräuchte ich das.mfg max
-
dann versuch mal dies...
int state = 0; int c; do { c = fgetc (input); switch (state) { case 0: if (c == '#') { state = 1; goto saveit; } break; case 1: if (c == '\n') state = 0; saveit: putc (c,test); printf("%c",c); break; } } while (c != EOF);
-
ja cool, das funktioniert^^
muss halt schauen das ich das goto rausbekomme, weil das wird bei uns gar nicht gern gesehen:)mfg
-
madmax20031 schrieb:
muss halt schauen das ich das goto rausbekomme, weil das wird bei uns gar nicht gern gesehen:)
brauchste nicht. halt deinem prof das hier unter die nase: http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf
-
ok werd ich mal versuchen