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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#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;
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 63399
Url: https://administrator.de/forum/ansi-c-textdatei-auslesen-und-chars-zusamenfuegen-63399.html
Ausgedruckt am: 05.04.2025 um 06:04 Uhr
5 Kommentare
Neuester Kommentar
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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