File Zeilenweise ausgeben
File Zeilenweise ausgeben
Wie kann ich ein File Zeilenweise ausgeben und dabei jede Zeile nummerieren??
das hab ich bis jetzt:
#include <stdio.h>
int main()
{
int i;
FILE *datei;
datei=fopen("test.txt","r");
if(datei!=NULL){
for(i=0;!feof(datei); i++){
while((i=fgetc(datei))!= EOF)
putchar(i);
}
}
else
printf("Konnte Datei nicht finden bzw. öffnen!
");
getchar();
return 0;
}
das hab ich bis jetzt:
#include <stdio.h>
int main()
{
int i;
FILE *datei;
datei=fopen("test.txt","r");
if(datei!=NULL){
for(i=0;!feof(datei); i++){
while((i=fgetc(datei))!= EOF)
putchar(i);
}
}
else
printf("Konnte Datei nicht finden bzw. öffnen!
");
getchar();
return 0;
}
Re: File Zeilenweise ausgeben
Hi bap!
Würde das so machen:
int main()
{
int i;
FILE *datei;
char zeile[1024];
/* atempt to open file test.txt */
datei=fopen("test.txt","r");
/* error message and PGM-end if file-open failed */
if(datei==NULL){
printf("fehler beim öffnen der Datei test.txt
");
exit(-1);
}
i = 0;
while((i=fscanf(datei,"%s",zeile))!= EOF)
{
printf("%d %s
",i,zeile);
i++;
}
if(i==0)
{
printf("Hmmm File test.txt existiert, scheint aber leer zu sein !?
");
}
/* hit space to end program */
printf("ende mit <space>");
getchar();
return 0;
}
Alle Klarheiten beseitigt ??
Gruss
Sulu
Würde das so machen:
int main()
{
int i;
FILE *datei;
char zeile[1024];
/* atempt to open file test.txt */
datei=fopen("test.txt","r");
/* error message and PGM-end if file-open failed */
if(datei==NULL){
printf("fehler beim öffnen der Datei test.txt
");
exit(-1);
}
i = 0;
while((i=fscanf(datei,"%s",zeile))!= EOF)
{
printf("%d %s
",i,zeile);
i++;
}
if(i==0)
{
printf("Hmmm File test.txt existiert, scheint aber leer zu sein !?
");
}
/* hit space to end program */
printf("ende mit <space>");
getchar();
return 0;
}
Alle Klarheiten beseitigt ??
Gruss
Sulu
Re: File Zeilenweise ausgeben
Hi bap !
Kleine Korrektur.
Das printf-statement zur Ausgabe der Zeilen ist nicht richtig.
Richtig wäre:
printf("%d %s
",i,zeile);
Aha.
Das Board zeigt die Zeichensequenz Backslash + 'n' nicht richtig an.
Nach %s im printf-statement gehört unbedingt ein Backslash mit einem nachfolgenden n hinein. Ansosnten fehlen die Zeilenumbrüche und Du siehst alles in einer "Wurscht"
Gruss
Sulu
Kleine Korrektur.
Das printf-statement zur Ausgabe der Zeilen ist nicht richtig.
Richtig wäre:
printf("%d %s
",i,zeile);
Aha.
Das Board zeigt die Zeichensequenz Backslash + 'n' nicht richtig an.
Nach %s im printf-statement gehört unbedingt ein Backslash mit einem nachfolgenden n hinein. Ansosnten fehlen die Zeilenumbrüche und Du siehst alles in einer "Wurscht"
Gruss
Sulu
Re: File Zeilenweise ausgeben
danke.
einen Bug hats noch.
es nummeriert mir die Zeilen nicht richtig.
einen Bug hats noch.
es nummeriert mir die Zeilen nicht richtig.
Re: File Zeilenweise ausgeben
Gern geschehen.
Mit dem Bug werde ich leben können <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
Gruss
Sulu
Mit dem Bug werde ich leben können <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
Gruss
Sulu
Re: File Zeilenweise ausgeben
ich nicht <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
Re: File Zeilenweise ausgeben
he diese programm gibt garnicht den Text Zeilenweise aus sondern Wortweise..
was muss ich machen damit es mir den Text Wortweise ausgiebt??
was muss ich machen damit es mir den Text Wortweise ausgiebt??
Re: File Zeilenweise ausgeben
Nur am Rande: Als Programmierübung ist das ja in Ordnung, aber wer so was braucht, nimmt "nl":
nl datei
Oder lieber als awk-Skript?
awk '{printf ("%d\t%s
",NR,$0)}' datei
Jochen
nl datei
Oder lieber als awk-Skript?
awk '{printf ("%d\t%s
",NR,$0)}' datei
Jochen
Re: File Zeilenweise ausgeben
Achje, die Backslashes im Board...
awk '{printf ("%d\<!--no-->t%s\<!--no-->n",NR,$0)}' datei
Jochen
awk '{printf ("%d\<!--no-->t%s\<!--no-->n",NR,$0)}' datei
Jochen
Re: File Zeilenweise ausgeben
#include <stdio.h>
void abbruch(void);
int zeile;
int main(int argc, char *argv[])
{
char puffer[128];
FILE *textdatei;
if (argc < 2) {
printf("Kein Argument angegeben
");
getchar();
return 1;
} // if
if ((textdatei = fopen (argv<font size="1">, "r" )) == NULL) {
fprintf(stderr, "Sh*** ein Fehler beim oeffnen der datei %s ist aufgetreteten!",argv<font size="1">);
getchar();
return 1;
} // if
while (fgets(puffer,128,textdatei) != NULL) {
fprintf(stdout, "%4d:\t%s", zeile++,puffer);
} // while
fclose(textdatei);
getchar();
return 0;
} // main
so gehts
void abbruch(void);
int zeile;
int main(int argc, char *argv[])
{
char puffer[128];
FILE *textdatei;
if (argc < 2) {
printf("Kein Argument angegeben
");
getchar();
return 1;
} // if
if ((textdatei = fopen (argv<font size="1">, "r" )) == NULL) {
fprintf(stderr, "Sh*** ein Fehler beim oeffnen der datei %s ist aufgetreteten!",argv<font size="1">);
getchar();
return 1;
} // if
while (fgets(puffer,128,textdatei) != NULL) {
fprintf(stdout, "%4d:\t%s", zeile++,puffer);
} // while
fclose(textdatei);
getchar();
return 0;
} // main
so gehts
Re: File Zeilenweise ausgeben
"he diese programm gibt garnicht den Text Zeilenweise aus sondern Wortweise.. was muss ich machen damit es mir den Text Wortweise ausgiebt??"
Ups.
Das kann sein.
Ich hab das mal so schnell aus der Hand geschüttelt.
Es kann durchaus sein das fscanf nur ein Wort liest.
=> Wir brauchen was schlaueres.
Oder wir bringen fsanf dazu dass er Zeilen liest.
Hmmmm...
fgets() müsste auch gehen.
Der liest bis zum nächsten Zeilenumbruch oder bis EOF.
Probier mal das:
i = 0;
while(!feof(datei))
{
zeile = fgets(datei);
printf("%d %s
",i,zeile);
i++;
}
Werden schon dahinter kommen.
Gruss
SULU
Ups.
Das kann sein.
Ich hab das mal so schnell aus der Hand geschüttelt.
Es kann durchaus sein das fscanf nur ein Wort liest.
=> Wir brauchen was schlaueres.
Oder wir bringen fsanf dazu dass er Zeilen liest.
Hmmmm...
fgets() müsste auch gehen.
Der liest bis zum nächsten Zeilenumbruch oder bis EOF.
Probier mal das:
i = 0;
while(!feof(datei))
{
zeile = fgets(datei);
printf("%d %s
",i,zeile);
i++;
}
Werden schon dahinter kommen.
Gruss
SULU
Re: File Zeilenweise ausgeben
@Jochen
> Nur am Rande: Als Programmierübung ist das ja in Ordnung, aber wer so was braucht,
> nimmt "nl":
> nl datei
> Oder lieber als awk-Skript?
> awk '{printf ("%d\t%s ",NR,$0)}' datei
oder
cat -n DATEINAME
> Nur am Rande: Als Programmierübung ist das ja in Ordnung, aber wer so was braucht,
> nimmt "nl":
> nl datei
> Oder lieber als awk-Skript?
> awk '{printf ("%d\t%s ",NR,$0)}' datei
oder
cat -n DATEINAME
Re: File Zeilenweise ausgeben
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">#include <stdio.h>
void abbruch(void);
int zeile;
int main(int argc, char *argv[])
{
char puffer[128];
FILE *textdatei;
if (argc < 2) {
printf("Kein Argument angegeben
");
getchar();
return 1;
} // if
if ((textdatei = fopen (argv<font size="1">, "r" )) == NULL) {
fprintf(stderr, "Sh*** ein Fehler beim oeffnen der datei %s ist aufgetreteten!",argv<font size="1">);
getchar();
return 1;
} // if
while (fgets(puffer,128,textdatei) != NULL) {
fprintf(stdout, "%4d:\t%s", zeile++,puffer);
} // while
fclose(textdatei);
getchar();
return 0;
} // main</font><hr></pre></blockquote>
Diese Prog liest den Inhalt einer Datei, Zeilenweise, und nummeriert diese auch.
wie kann ich das alles rückwärts ausgeben.???
Ich meine nur die Zeilen nicht alle Buchstaben.
void abbruch(void);
int zeile;
int main(int argc, char *argv[])
{
char puffer[128];
FILE *textdatei;
if (argc < 2) {
printf("Kein Argument angegeben
");
getchar();
return 1;
} // if
if ((textdatei = fopen (argv<font size="1">, "r" )) == NULL) {
fprintf(stderr, "Sh*** ein Fehler beim oeffnen der datei %s ist aufgetreteten!",argv<font size="1">);
getchar();
return 1;
} // if
while (fgets(puffer,128,textdatei) != NULL) {
fprintf(stdout, "%4d:\t%s", zeile++,puffer);
} // while
fclose(textdatei);
getchar();
return 0;
} // main</font><hr></pre></blockquote>
Diese Prog liest den Inhalt einer Datei, Zeilenweise, und nummeriert diese auch.
wie kann ich das alles rückwärts ausgeben.???
Ich meine nur die Zeilen nicht alle Buchstaben.
Re: File Zeilenweise ausgeben
Vielleicht sag ich mal wasfür ne Aufgabe ich bekommen habe:
Ich muss ein File öffnen und Zeilenweise ausgeben.
Dabei muss ich jede einzelne Zeile nummerieren.
Das Programm soll die Zeilen so ausgeben wie sie in der Datei stehen und nicht zb. nach x Zeichen trennen oder so.
das Programm soll Zeichenweise einlesen aund ausgeben denn ich muss jedes Zeichen mit
vergleichen.
Wenn
kommt soll es mir im Counter eins dazuzählen.
Also kurz gesagt muss ich in der Datei nach
suchen und bei jedem gefundenem
den Counter + 1 zählen.
Wenn das ganze klappt wird ich das Programm so umscheiben müssen das die Zeilen verkehrt herum ausgegeben werden, das sollt vielleicht beachtet werden.
THX
Ich muss ein File öffnen und Zeilenweise ausgeben.
Dabei muss ich jede einzelne Zeile nummerieren.
Das Programm soll die Zeilen so ausgeben wie sie in der Datei stehen und nicht zb. nach x Zeichen trennen oder so.
das Programm soll Zeichenweise einlesen aund ausgeben denn ich muss jedes Zeichen mit
vergleichen.
Wenn
kommt soll es mir im Counter eins dazuzählen.
Also kurz gesagt muss ich in der Datei nach
suchen und bei jedem gefundenem
den Counter + 1 zählen.
Wenn das ganze klappt wird ich das Programm so umscheiben müssen das die Zeilen verkehrt herum ausgegeben werden, das sollt vielleicht beachtet werden.
THX