c - 从文件读取但读取的第一行是错误的

标签 c file-io

int main()
{
    FILE *fp;
    int testNumber;
    char answerKey[5];

    fp = fopen("test.txt", "r");

    for(int i=0; i<4; i++)
    {
        fscanf(fp, "%s %d\n", answerKey, &testNumber);

        printf("%s %d\n", answerKey, testNumber);

    }
    return 0;
}

我正在读取包含以下内容的文件:

dbac 10

达巴克8

dcbdc 1

dbac 5

我的输出是这样的:

dbac

10

大巴8

dcbdc 1

dbac 5

为什么第一行读错了?为什么多了下一行?

如有任何帮助,我们将不胜感激

最佳答案

answerKey 不够长。要容纳 5 个字符和一个终止字符串,需要将其定义为至少包含 6 个字符的数组:

char answerKey[6];

关于c - 从文件读取但读取的第一行是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22728220/

相关文章:

c - 在C中将数组存储在另一个数组(3D数组)中

c - 在信号处理程序上调用 fprintf() 是否安全?

c - 尝试在 Mac OSX 的 OpenGL 中使用鼠标外观相机

python - 用python写文件的正确方法

java - 从外部存储 Android 读取图像/文件

c - 这段代码如何解决?

将 Unix/Linux 时间转换为 Windows FILETIME

c++ - put 和 read 字符不匹配

matlab - 在MATLAB中直接将大数组写入磁盘时,是否需要预先分配?

java - 使用 FileInputStream 输入文件无法正常工作