fscanf проблема при чтении из файла

Я в основном использую функцию C, fscanf () для чтения данных из файла. используя fopen и проверяя его, я знаю, что файл открывается успешно, проверяя возвращаемое значение.

Файл отформатирован с помощью Char, Int, Int. У меня проблема в том, что я могу читать только по одной строке за раз, и цикл завершается. Был бы признателен, если бы кто-нибудь мог увидеть, где я ошибаюсь

char c;     
char nl;    
int t1, t2; 
int dataTest; 
do
{
    dataTest = fscanf(fp, "%c %d %d", &c, &t1, &t2);
    fscanf(fp, "%c", &nl);
    printf("%c %d %d \n", c, t1, t2);
    if (dataTest = -1)
    {
        break;
    }
}while(1);

person lecardo    schedule 04.03.2014    source источник
comment
стремитесь к минимальному примеру. в этом случае большая часть кода (и описания!) не нужна для воспроизведения проблемы.   -  person Karoly Horvath    schedule 05.03.2014


Ответы (1)


Вы хотите

if(datatest==-1)

скорее, чем

if(datatest = -1)

Один проверяет равенство, а другой - выражение присваивания. Любое «выражение присваивания» в C вернет значение, которому присвоена переменная. Так, например, datatest= -1 вернет -1.

person C.B.    schedule 04.03.2014
comment
ах глупая ошибка! Спасибо что подметил это. жду 10 минут, так как я еще не могу дать ответ на ваш ответ - person lecardo; 05.03.2014
comment
@Bobski случается с лучшими из нас :). - person C.B.; 05.03.2014