C - fscanf 未从文本文件中正确读取数字

标签 c pointers reference scanf

我是 C 新手,我试图让我的 int 等于 4。4 是从文本文件中读取的,但是当我打印出来时,它打印出 32767。

#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);
}

最佳答案

您的代码看起来是正确的,只是您应该在 fscanf 之前测试 fopen 是否工作。顺便说一句,您得到的数字是 int 的最大值 您的文件可能有问题:

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

另外,如果你只使用 C 函数,为什么还要使用 C++?

关于C - fscanf 未从文本文件中正确读取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35514044/

相关文章:

c - 不知道如何实现指向 char 指针数组的指针

c++ - 一元 '*' 的无效类型参数(有 'bool' )

c - Pipe() 中的 read 方法返回什么

c - 处理 "start without debugging"上的文件

创建指向二维数组的指针

c++ - 使用默认构造函数引用成员变量初始化错误

终端上的 Haskell 文档

通过C代码计算FLASH利用率

c - 错误消息 : Main. c|6|error:预期标识符或 '(' 在 'A' 之前

java - 更改 Java 动态列表或映射中的对象引用