File auf Zeichen prüfen
-
Hi Leute,
im Prinzip ist es realtiv einfach. Ich möchte nach einer Dateipoeration prüfen, ob ein bestimmtes Zeichen vorkam. Zum Beispiel soll jedes mal, wenn ein "#" vorkommt, in die nächste Zeile gesprungen werden. Kann mir da einer Rat geben? Es sollen keine ifstream-Operationen mit strings etc. durchgeführt werden...Ich hatte mir das alles so vorgestellt:
FILE *File=NULL; char ch; ch=fgect(File); while(feof(File)) { switch(ch) { case '#': Mach_Dies_und_Das_über_Liebe_und_Hass break; } }
Jo, so wollte ich's ungefähr haben...
Bei einem Zeichen haut das ja auch wahrscheinlich noch hin, doch wie frage ich jetzt ab, ob beispielsweise ein "//" kommt?Vielen lieben dank im Voraus!
-
Im allgemeinen brauchst du nsizeof(char)* Puffer-Bytes um nach
einem n-Zeichen-String zu suchen.
Im Fall von "//" reicht ein Zähler, weil die Zeichen gleich sind.
-
Tut mir leid, ich versteh nicht ganz...das heisst also, man kann "//" auch einfach so abfragen?
Danke!
-
Kann mir keiner helfen?
-
versuchs mal unegfähr so
... for (;;) { int ch = fgetc(file); if (ch == EOF) break; // file ausgelesen? --> raus aus der schleife if (ch == '#') { // zeichen gefunden ... } } ...
-
Hi, danke für den Code! Aber eine Frage hätte ich da noch, was bedeutet das doppelte Semikolon in der for-Schleife?
Danke im Voraus!
-
peter lustig hasst dich! schrieb:
Aber eine Frage hätte ich da noch, was bedeutet das doppelte Semikolon in der for-Schleife?
das heisst 'endlosschleife'. kannst auch 'while(1)' nehmen, wenn's dir besser gefällt.