读取外部文件

时间:2012-12-26 15:55:00

标签: c++ c

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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