Ich habe ein kleines Beispielprogramm, um mein Problem unten zu illustrieren: Ich habe eine einfache Textdatei mit drei Wörtern (jeweils in einer neuen Zeile) die fscanf liest, weist eine temporäre Variable zu und dann wird in ein String-Array übertragen. Die Werte scheinen jedoch nicht auf das Array zu übertragen. Auch wenn ich den Kommentar // aus dem zweiten printf in der while-Schleife entferne, bekomme ich einen seg-Fehler.fscanf Verwendung in c - Werte werden nicht richtig gespeichert
Ich bin ziemlich neu in C, also erst jetzt lernen die Verwendung dieser Funktionen! Danke im Voraus für Hilfe!
#include <stdio.h>
#include <string.h>
int main (int argc, char* argv[])
{
char* words[15];
char tmp[45];
int i = 0;
FILE* fp = fopen("small", "r");
while (fscanf(fp, "%s", tmp) == 1)
{
printf("%s\n", tmp);
words[i] = tmp;
i++;
//printf("%s ", words[i]);
}
printf("\n");
printf("Words 0 = %s\n", words[0]);
printf("Words 2 = %s\n", words[1]);
printf("Words 3 = %s\n", words[2]);
fclose(fp);
}
Ausgabe
pears
apples
zipper
Words 0 = zipper
Words 2 = zipper
Words 3 = zipper
Es muss eine Reihe von Fragen sein, die dies ist ein Duplikat - es ist ein häufiges Problem. –
Hier sind zwei Duplikate: http://StackOverflow.com/Questions/29335910/having-trouble-with-array-being-overwritten http://StackOverflow.com/questions/16268520/c-value-being-change-overwritten –