Zeilennummern - {Help}
-
Ich hoffe ich hab das richtige Sub Forum gewählt...
Also ich muss ne Aufgabe lösen in C und zwar geht es um Zeilen nummern.
text1.txt (Input) Guten Tag Schönes Wetter am 4.9.2007
folgende funktionen sollten vorkommen :
- String Funktionen
- File Funktionen
- IterationenAufgabe :
Ziel
Komplexere Aufgabe mit gleichzeitigem Lesen und schreiben derselben DateiAusgangslage
Wenn Sie ein C-Programm compilieren und der Compiler findet einen Fehler, gibt er die Zeilennummer an, auf der das selbe Problem auftritt. Leider haben C-Programme aber keine Zeilennummern unter einem neuen Namen wieder ausgibt.
Beispiel
Eingabedatei: Hallo.CPP#include <iostream> int main() { cout << "Hallo Welt" << endl; return 0; }
Ausgabe Hallo_2.CPP
1: #include <iostream> 2: int main() 3:{ 4: cout << "Hallo Welt" << endl; 5: return 0; 6: }
Achtung
Sie benötigen zusätzliche Bibliotheksfunktion, mit der Sie einen numerischen Wert (z.b. Zeilenzähler) in einen String umwandeln können. Diese Funktion lautet folgendermassen:int zaehler = 17; char neueZeile [255]; sprinf(neue Zeile, "3%d: ", zaehler);
Ich hoffe ihr könnt mir helfen
Danke im Voraus
So long...
Plion
-
Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ach kinder, könnt ihr nicht einfach fragen stellen? das sind diese sätze mit dem fragezeichen am ende.
was genau ist dein problem? wieweit bist du und was verstehst du nicht?
-
// Zeilennummern.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung. // #include "stdafx.h" int main(int argc, char* argv[]) { char readlines[255]; // Variable zum Lesen und Schreiben der Datei. int zahler; // Für die Nummer der Zeilen. (1:, 2:,3: ...) zahler=0; FILE * fp; // Pointer zum Lesen FILE * fp2; //Pointer zum Schreiben fp=fopen("text.txt","r"); // Offnen der Datei text.txt, die ich schon erstellt und etwas reingeschrieben habe. fp2=fopen("textoutput.txt", "w"); // File zum schreiben if (fp==NULL) { printf("Fehler beim Oeffnen der Datei %s\n", "text.txt"); return 1; } if (fp2==NULL) { printf("Fehler beim Schreiben der Datei %s\n", "text.txt"); return 1; } while (!feof (fp)) // lesen bis zum End of File { fgets(readlines,255,fp); // Zeilen lesen printf("%s",readlines); // Zeilen ausgeben zahler=zahler+1; // Zeile mitzählen fprintf(fp2,"%i: %s\n",zahler,readlines); // zeile in die Datei schreiben } fclose(fp); // schliessen fclose(fp2); return 0; }
ich habs jetzt so gelöst meine frage nun was kann ich machen (ich denke es geht mit strlen) das es keine zeilenabstände gibt im C programm...
so long...
Plion
-
fgets speichert den zeilenumbruch mit in den buffer. das heißt, du musst es bei deiner fprintf-ausgabe so schreiben:
fprintf(fp2,"%i: %s",zahler,readlines); // zeile in die Datei schreiben