Zum Inhalt springen

Standarteingabe: Ausgabe mit Zeilennummern


kkkiwi

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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;

}

}

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...