Ich habe eine Datendatei namens Somedata.dat, es enthält eine Liste von Zahlenpaaren. ungefähr 10000 Paare. Wie folgt aus:So speichern Sie eine große Menge von Daten in einem Array in C
3 19
5 213
1 34
7 93
Ich versuche, die Datei zu öffnen, und lesen Sie sie, dann legte die Zahlen in einem 10000x2 Array. Mit dem folgenden Code wird jedoch nicht mehr ausgeführt, wenn die Schleife ungefähr das 80000ste Mal (EOF) erreicht. Irgendwelche Ideen? Vielen Dank.
int main(int argc, char *argv[])
{
int data[10000][2];
FILE *fp;
char s[5];
char temp[2];
char cur;
char next;
int pid=0;
int k=0;
fp = fopen("c:\\somedata.dat","r");
while (!EOF)
{
cur = fgetc(fp);
if (cur==' ')
{
data[pid][0]=atoi(s);
memset(&s[0], 0, sizeof(s));
}
else if (cur=='\n')
{
data[pid][1]=atoi(s);
pid++;
memset(&s[0], 0, sizeof(s));
}
else
{
temp[0]=cur;
temp[1]='\0';
strcat(s,temp);
}
}
'while (k! = 80000)' - Sind Sie sicher, dass Sie nicht _ask_ dafür gearbeitet haben, nicht mehr zu funktionieren? – sarnold
ich bin in keiner Weise C-Experte. aber solche großen Arrays sollten im Heap sein. malloc es. – Nahum
Sie sollten mit Heap allokierte Arrays (mit 'calloc') verwenden, um mit großen Datenmengen umgehen zu können. –