2016-02-19 3 views
0

Я новичок в C, и я пытаюсь сделать мой int равным 4. 4 читается из текстового файла, однако, когда я распечатываю его, он распечатывает 32767 .C - fscanf неверно читает номер из текстового файла

#include <cstdlib> 
#include <stdio.h> 
#include <stdlib.h> 
#include "Component.h" 
using namespace std; 


int main(int argc, char** argv) { 
    FILE *fp; 
    fp=fopen("text.txt","r"); 
    int a; 

    fscanf(fp,"%d",&a); 
    if(fp == NULL) { 
     printf("cannot open"); 
    } 

    printf("%d",a); 
} 
+2

Вы не обнаружили, что файл открыт. 'if (fp == NULL) {/ * report report * /}' –

+0

Я добавил чек, и файл открыл –

+0

Кроме того, вы не '#include ' –

ответ

0

Ваш код выглядит правильно, за исключением того, что вы должны проверить, если fopen работал раньше fscanf. Кстати, число вы получите максимальное значение для int Существует, вероятно, проблема с файлом:

  • Нет разрешения на чтение
  • файл не существует
  • не содержит правильное значение

Кроме того, почему вы используете C++, если используете только функции C?

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