我试图在c90中创建一个程序,它将从txt文件中读取一些单词并将它们复制到矩阵数组中。似乎编译没问题,但有一个名为" EXC_BAD_ACCESS(代码= 1地址= 0x68)的线程。你能帮我找出问题所在吗?
int main(int argc, char *argv[]) {
FILE *input;
char words[10][30];
int i,a;
input=fopen("test.txt","rt");
for(i=0;i<10;i++){
a = fscanf(input,"%s", words[i]);
printf("%2d %s\n", a, words[i]);
}
fclose(input);
return 0;
}
答案 0 :(得分:0)
检查您的文件是否实际被打开,否则printf()将尝试打印出可能超出您实际分配范围的随机内存并导致错误。
input = fopen("test.txt", "rt");
if (!input)
{
perror("Failed to open file");
exit(1);
}
您可能还想检查a == 1
,即fscanf()
也成功。