我试图读取具有以下格式的.txt,以便创建一个大小为26的数组(每个字母为1)。在字母数字字符串中存储整数值
a 5
b 2
c 4
d 10
e 11
f 5
g 7
...
我试图下面与(非工作)执行此操作代码,发送空VEC [26]作为一个参数,以及其中包含在每个字的值中的.txt:
void readvalues(FILE*values, int*vec)
{
if (values == NULL)
{
printf("Couldn't open values' file\n");
exit(0);
}
int i=0;
while (i<26)
{
fscanf(values,"%d",&vec[i]);
printf("%d\n",vec[i]);
i++;
}
}
当我检查printf输出时,我发现vec [0]是正确的,但是此函数开始在其余位置存储垃圾。 这是什么原因造成的?我该如何解决?除fgets之外,还有其他fscanf的选择吗?
预先感谢您。
@Jose你需要检查'fscanf'返回你所期望的匹配数量。在你现在的代码中,'1',在R Sahu的答案中,'2'。这就是为什么你看到*垃圾* - 因为'fscanf'没有存储*任何*那里。 –