Ansi-C, Textdatei auslesen und chars zusamenfügen?
Hi,
ich komm eigentlich von der Javaschiene und kenn C nicht wirklich aber ich benötige für eine Aufgabe etwas Compiliertes.
Es geht darum, eine TXT zeichenweise auszulesen und dann in einen String zu füllen. Das ganze soll dann ausgegeben werden wenn eine Zeile beendet ist. Da C ja keine Strings beherscht muß man das ja alles über diese Char-Arrays mühsam zusammenkleben.
Jedoch scheint das nicht so zu klappen wie gedacht. In der refference stand das strcat Chars aneinanderkleben kann, bzw. einen Char-Array mit chars auffüllt. Trotzdem meckert der Compiler das die Strcat-anweisung nicht korrekt wäre.
ich komm eigentlich von der Javaschiene und kenn C nicht wirklich aber ich benötige für eine Aufgabe etwas Compiliertes.
Es geht darum, eine TXT zeichenweise auszulesen und dann in einen String zu füllen. Das ganze soll dann ausgegeben werden wenn eine Zeile beendet ist. Da C ja keine Strings beherscht muß man das ja alles über diese Char-Arrays mühsam zusammenkleben.
Jedoch scheint das nicht so zu klappen wie gedacht. In der refference stand das strcat Chars aneinanderkleben kann, bzw. einen Char-Array mit chars auffüllt. Trotzdem meckert der Compiler das die Strcat-anweisung nicht korrekt wäre.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
main(void)
{
FILE *datei;
datei = fopen("123.txt", "r");
if(NULL != datei) {
printf("Konnte Datei öffnen!\n");
}
char a;
char b[100];
while ( a != EOF )
{
a=fgetc(datei);
strcat(b[100], a);
if (a == '\n')
{
printf("%s", b);
}
}
return 0;
}
Please also mark the comments that contributed to the solution of the article
Content-Key: 63399
Url: https://administrator.de/contentid/63399
Printed on: April 19, 2024 at 20:04 o'clock
5 Comments
Latest comment
Tach,
also ich habe das gerade mal ausprobiert, das hier sollte funktionieren:
Das funktioniert so. Versuch doch mal den String mittels strcpy erstmal zu "initialisieren".
Bis dann
VoSp
also ich habe das gerade mal ausprobiert, das hier sollte funktionieren:
#include <stdio.h>
#include <string.h>
int main (void)
{
char string[80];
strcpy (string,"Das ");
strcat (string,"ist ");
strcat (string,"ein ");
strcat (string,"Test.");
puts (string);
return 0;
}
Bis dann
VoSp
@ooAlbert
Hi,
Strcat funktioniert nur mit strings.
Außerdem versuchst du mit ...
Element eines Arrays einzulesen.
Du mußt schon einen Zähler mitführen, in welchen Element
die gelesene Zeile eingefügt werden soll.
Gruß
Günni
PS.:
C kann sehr wohl mit strings umgehen:
char *s;
Allerdings muß man für *char s eine Speicherresevierung vornehmen
Hi,
Strcat funktioniert nur mit strings.
Außerdem versuchst du mit ...
...
strcat(b[100], a);
...
... jedesmal das gelesene Zeichen in das hundertstestrcat(b[100], a);
...
Element eines Arrays einzulesen.
Du mußt schon einen Zähler mitführen, in welchen Element
die gelesene Zeile eingefügt werden soll.
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main(void)
{
FILE *datei;
datei = fopen("c:\\123.txt", "r");
int i=0;
char b[100];
while (!feof(datei)){
b[i]=fgetc(datei);
i++;
}
b[i]='\0';
printf("%s",b);
fclose(datei);
return 0;
}
Gruß
Günni
PS.:
Da C ja keine Strings beherscht muß man das ja alles über diese
Char-Arrays mühsam zusammenkleben.
Char-Arrays mühsam zusammenkleben.
C kann sehr wohl mit strings umgehen:
char *s;
Allerdings muß man für *char s eine Speicherresevierung vornehmen