嗨我有这个文本文件,其中第二个字符中的第一列是第二个,第三个是整数..但是我无法读取和打印正确的值。
所以这个文件试图读取:
c 6
o 4 3
o 2 4
o 3 2
o 1 1
o 3 3
以下是代码:
#include <stdio.h>
#include <stdlib.h>
#define N 6
int main (int argc, char *argv[])
{
int i;
int M[N];
int U[N];
char c ;
FILE* fichier = NULL;
fichier = fopen("pb1.txt","r");
if(fichier!= NULL )
{
while(!feof(fichier))
{
fscanf(fichier, "%c %d %d", &c, &M[i], &U[i]);
printf("%c %d %d \n", c, M[i],U[i]);
}
}
}
这是输出的样子
c 6 1472131424
o 4 3
4 3
o 2 4
2 4
o 3 2
3 2
o 1 1
1 1
o 3 3
3 3
我不知道为什么它给了我这个。谢谢
答案 0 :(得分:1)
我在这里看到的第一个问题是你使用i
未初始化的值。它调用undefined behavior。
详细说明,i
是一个自动局部变量,除非明确初始化,否则将具有不确定的值。尝试使用它将导致UB。
此外,您从未增加i
的值,该值应该用作存储和打印值的索引。
最后,在尝试使用扫描值之前,请务必检查scanf()
和系列的返回值以确保成功。