kkkiwi Geschrieben 31. Mai 2009 Teilen Geschrieben 31. Mai 2009 Hallo, ich habe ein kleines Problem und zwar soll ich durch eine Standarteingabe die aus einer Datei kommr einen Text (Gedicht) einlesen und diesen anschließend wieder mit Zeilenangaben ausgeben. Leider klappt das Ganze nicht so wie ich will. Ich kann zwar den Text aus der Datei lesen, allerdings nicht mit vorgeschobener Zeilennummerierung :S Wüde mich echt freuen wenn mir jemand helfen könnte. #include <stdio.h> main(){ int i=0; int c = getchar(); while (c != EOF) { putchar©; c = getchar(); if (c == /n) /* -----> hier liegt mein Fehler; ich weiß, dass immer wenn ein Zeilenumbruch kommt die Zeilenzahl um eins erhöht werden muss... aber ich weiß nicht wie ich das ausdrücken kann...*/ printf ("%4d",i++); } } Danke für eure Hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lit-web Geschrieben 31. Mai 2009 Teilen Geschrieben 31. Mai 2009 Ich habe nun nicht so große Ahnung von C++ (noch nicht). Aber ich denke um die Zeilennummern mit auszugeben müsstest du das File bzw. den Text aus dem File in ein Array lesen und von da aus das dann so handeln das die Zeilen mit ausgegeben werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 31. Mai 2009 Teilen Geschrieben 31. Mai 2009 if (c == '\n') Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gkar Geschrieben 31. Mai 2009 Teilen Geschrieben 31. Mai 2009 Ich denke mir ist eine mögliche Lösung für dein Problem eingefallen. Es ist zwar nicht sonderlich schön gelößt, aber es dürfte trotzdem seinen Zweck erfüllen. Ich würde folgende Codesegmente in deinen Code noch einbauen: int zaehler=2; /*für die laufende Zeilennummerierung*/ int merker=0; /*als Hilfsvariable für einen möglichen Zeilenumbruch*/ Für deine If-Schleife: if (c == /n) { merker=1; } Nach der Ausgabe des eingelesenen Zeichens: if (merker == 1) { printf("%i: ", zaehler); zaehler++; merker=0; } Bzw. was du noch benötigst ist ein einfaches Printf für die erste Zeile, weil die währe ja nicht nummeriert, weil noch kein Zeilenumbruch stattgefunden hat. Ich hoffe das konnte dir etwas weiterhelfen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kkkiwi Geschrieben 31. Mai 2009 Autor Teilen Geschrieben 31. Mai 2009 Hallo, schon mal ein ganz großes Dankeschön für eure Hilfe. Leider läuft das Programm bei mir immer noch nicht. Und zwar bekomme ich für den Ausdruck: if (c== '/n') bzw. if c== /n) immer die Fehlermeldung: Warnung! Zeichenkonstante mit mehrern Zeichen... kann mir vllt jemand sagen woran das liegt- bzw was ich abändern muss, damit der Zeichenumbrucherkannt wird? die momentane Fassung des Programms sieht so aus: #include <stdio.h> main(){ int zaehler=2; /*für die laufende Zeilennummerierung*/ int merker=0; /*als Hilfsvariable für einen möglichen Zeilenumbruch*/ int i=0; int c = getchar(); printf("1"); while (c != EOF) { putchar©; c = getchar(); if (c == '/n') { merker=1; } if (merker == 1) { printf("%i: ", zaehler); zaehler++; merker=0; } } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 1. Juni 2009 Teilen Geschrieben 1. Juni 2009 \n, nicht /n Den Merker brauchst du nicht, weil du ihn ja sowieso sofort danach auswertest. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kkkiwi Geschrieben 1. Juni 2009 Autor Teilen Geschrieben 1. Juni 2009 Hey ihr beiden, ein ganz großes Dankeschön an euch. Jetzt sieht das Ganze schon ganz gut aus. Leider steht der Zeilenzähler noch eine Zeile über dem Text... ich hoffe mal, dass ich das heute mittag noch hinbekomme... aber das wird hoffentlich noch klappen. VG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 1. Juni 2009 Teilen Geschrieben 1. Juni 2009 Setz einfach das getchar in der Schleife hinter den if-Block. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kkkiwi Geschrieben 1. Juni 2009 Autor Teilen Geschrieben 1. Juni 2009 danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.