2014-11-08 2 views
0

Я создал файл с содержанием: '12 7 -14 3 -8 10'Чтение и вывод целых чисел из файла в C

Я хочу, чтобы вывести все числа целочисленного типа. Но после компиляции и запуска программы, я получаю только первый номер «12»

Вот мой код:

#include <stdio.h> 

main(){ 
    FILE *f; 
    int x; 
    f=fopen("C:\\Users\\emachines\\Desktop\\ind\\in.txt", "r"); 
    fscanf(f, "%d", &x); 
    printf("Numbers: %d", x); 
    fclose(f); 
} 

Что я делаю неправильно?

ответ

1

Вы сканируете одно целое число из файла, используя fscanf и распечатайте его. Вам нужен цикл, чтобы получить все целые числа. fscanf возвращает количество элементов ввода, успешно совпадающих и назначенных. В вашем случае fscanf возвращает 1 при успешном сканировании. Поэтому просто прочитайте целые числа из файла до fscanf. 0:

#include <stdio.h> 

int main() // Use int main 
{ 
    FILE *f; 
    int x; 

    f=fopen("C:\\Users\\emachines\\Desktop\\ind\\in.txt", "r"); 

    if(f==NULL) //If file failed to open 
    { 
     printf("Opening the file failed.Exiting..."); 
     return -1; 
    } 

    printf("Numbers are:"); 
    while(fscanf(f, "%d", &x)==1) 
    printf("%d ", x); 

    fclose(f); 
    return(0); //main returns int 
} 
+0

Спасибо! вы использовали 'while (fscanf (f,"% d ", & x) == 1)', поэтому я хочу спросить. Is 'while (fscanf (f,"% d ", & x) == 1)' эквивалентно 'while (! Feof (f))' или нет? –

+0

Нет. ['While (! Feof (f))' is wrong] (http://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong). –

Смежные вопросы