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 が見つからないという出力が表示されますが、その理由はわかりません。

4

2 に答える 2

1

あなたはそれを2回開いています。また、間違った作業ディレクトリで実行している可能性があります。

于 2012-12-26T15:58:40.463 に答える
0

と言うfopen("input.txt","r");と、ライブラリはファイルの特定のパスを想定し、現在の作業ディレクトリ、通常は実行可能ファイル自体と同じフォルダー (Windows/visual C++ 内) または exe がある場所にあると想定されます。開始されました (ほとんどの UNIX ベースのシステム)。

したがって、実行可能ファイルがデスクトップにない限り (またはデスクトップが現在の作業ディレクトリである場合)、これが失敗の原因です。これを修正する 2 つの方法は、何らかの方法でパスを絶対パスにするか、ファイルを実行可能ファイルの予想される作業ディレクトリに移動することです。

于 2012-12-26T15:59:00.713 に答える