2015-06-09 2 views
-1

Я пробовал около полутора дней. Пробовал несколько методов, чтобы помещать целые числа моего файла в массив. Вы можете помочь? Выход, который я получаю сейчас, повторяется снова и снова.Как сохранить целые числа из файла в массив?

if ((nfPtr=fopen("c:\\Users\\raphaeljones\\Desktop\\newfile.dat","r"))==NULL) 
{ 
    printf("File could not be opened\n"); 
} 
else { 
    printf("The integers you have entered are: \n"); 
    fscanf(nfPtr,"%d\n",&i); 
    while(!feof(nfPtr)){ 
     for (count=0;count<=SIZE;count++){ 
      fscanf(nfPtr,"%d",&array[i]); 
      i++; 
      printf("%d\n",i); 
     } 
    } 
}//end else 
fclose(nfPtr); 
getch();  
return 0; 
+1

1) Отформатируйте код. 2) Использовать поиск 3) [Почему «while (! Feof (file))« всегда неправильно? »(Http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong) –

+0

'while (! Feof (nfPtr)' .... вы уверены? –

+0

Какой язык или платформа вы используете? (ANSI C или C++?) Пожалуйста, уточните, что именно вы пытаетесь сделать. –

ответ

1

Вы можете попробовать что-то вроде:

for (i = 0; fscanf(nfPtr, "%d", &array[i]) == 1; i++) { 
    printf("%d\n", array[i]); 
} 

При условии, ваш массив всегда достаточно велик (что вы обычно не знаете), в противном случае вы должны динамически выделять пространство для каждый новый элемент.

+1

Wow! works man. Мне это очень понравилось. –

1

В этом коде:

i++; 
printf("%d\n",i); 

Вы приращение индекса (I), затем печать его? Вы намеревались напечатать числа, считанные из файла? Может быть, вы хотите:

printf("%d\n",array[i]); 
i++; 
+0

не работает, но спасибо. Я хочу прочитать, сколько целых чисел находятся в файле, поэтому я увеличиваю i, но это неправильная логика. Просто не уверен, что сказать компьютеру. –