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

时间:2014-03-29 07:17:45

标签: 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;
}

我正在阅读包含此文件的文件:

dbbac 10

dabac 8

dcbdc 1

dbbac 5

我的输出是:

dbbac

10

daba 8

dcbdc 1

dbbac 5

为什么第一行读错了?为什么还有额外的下一行?

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

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

char answerKey[6];