1

我正在做 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 not found,我不知道为什么。

4

2 回答 2

1

你打开它两次。此外,您可能使用错误的工作目录运行它。

于 2012-12-26T15:58:40.463 回答
0

当您说fopen("input.txt","r");时,库将假定文件的特定路径,它将假定位于当前工作目录中,通常与可执行文件本身(在 Windows/visual C++ 中)相同的文件夹或 exe 所在的位置推出(大多数基于 unix 的系统)。

所以除非可执行文件在桌面上(或者桌面是当前工作目录),否则这就是失败的原因。解决此问题的两种方法是以某种方式使路径成为绝对路径,或者将文件移动到可执行文件的预期工作目录。

于 2012-12-26T15:59:00.713 回答