Tor Überschreiben ist C zu verwenden, um Daten aus einer Datei zu lesen (könnte Text oder binär) und hängen Sie dann an eine bestehende Zeichenfolge2. char-Array 1. char-Array nach fread aus Datei
Ich habe 2 char-Arrays, eines ein bestehende Zeichenfolge (s1), und eine andere eine Zeichenkette (s2) ich werde den Puffer char-Array (buf) zu
size_t readCounter = 0;
char buf[16];
char s1[] = "hello ";
char s2[] = ""
while (1) {
readCounter = fread(buf, sizeof(char), strlen(buf), fp);
if (readCounter == 0) {
break;
}
strcat(s2, buf);
}
printf("%s", s1);
printf("%s", s2);
Problem anhängen:
Wenn ich s1 ausdrucken, ist es nicht mehr „Hallo "Es enthält die Zeichen aus der Datei, aus irgendeinem Grund wird das erste Char-Array im Speicher überschrieben. Warum passiert das? Wie kann ich das beheben?
'buf' wird nie initialisiert, also fragst du hier nach Explosionen, wenn du' strlen' darauf anrufst. – tadman
okay, ich gebe 16 (Größe des Puffers) statt Strlen (Buf) – user3226932
Es ist wahrscheinlich besser, magische Zahlen wie diese zu vermeiden und stattdessen 'sizeof (buf)' zu verwenden. – tadman