我正在做cpu调度程序模拟器,我需要它来读取外部文件。我已经以txt格式创建了文件,并将其保存到桌面,该文件包含表单中的数字 -
12;3;5
3;4;2
3;4;5
我将文件保存为桌面上的input.txt文件。 我尝试使用此代码阅读它
FILE *fa;
fa= fopen("input.txt","r");
if ((fa = fopen("input.txt", "r")) == NULL)
{
printf("input.txt file not found\n");
getchar();
return 0;
}
while (fgets(line,1024, fa) != NULL)
{
e=k+1;
sscanf(line,"%d;%d;%d\n",&num[0],&num[1],&num[2]);
a[i][0]=num[0];
printf("%d",&a[i][0]);
a[i][1]=num[1];
a[i][2]=num[2];
a[i][3]=e;
i++;
k++;
}
fclose(fa);
这段代码给了我一个输出,它读取未找到的input.txt,我不知道为什么。
答案 0 :(得分:1)
你打开它两次。您也可能使用错误的工作目录运行它。
答案 1 :(得分:0)
当您说fopen("input.txt","r");
时,库将假定该文件的特定路径,它将被假定为当前工作目录,通常与可执行文件本身相同(在Windows / Visual C ++中)或启动exe的位置(大多数基于unix的系统)。
因此,除非桌面上的可执行文件(或桌面是当前工作目录),否则这是失败的原因。解决此问题的两种方法是将路径设置为绝对路径,或者将文件移动到可执行文件的预期工作目录。