2016-02-19 88 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){/ * error report * /}' –

+0

我添加了检查并且文件确实打开了 –

+0

另外,您没有'#include ' –

回答

0

你的代码看起来正确,除了你应该测试是否fopenfscanf工作过。顺便说一句,你得到的数字是一个int 最大值有可能是您的文件存在问题:

  • 没有读取权限
  • 文件不存在
  • 不包含正确的价值

此外,如果您只使用C函数,为什么要使用C++?