特定のテキストファイルを解析しようとしていますが、これまでのところ、私のプログラムは正しく読み取っていないようです。
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fr; //file pointer
int buildingFloors = 1;
printf("sanity check\n");
fr = fopen (argv[0], "r");
fscanf(fr, "%d", &buildingFloors );
printf("%d\n", buildingFloors);
fclose(fr);
return 0;
}
次のコマンドを使用して、プログラムをコンパイルし、redhat Linux マシンで実行します。
./sjf file.text
file.text は、最初の文字が「4」のテキスト ドキュメントです。だから私は私の出力が
sanity check
4
ただし、プログラムを実行すると、代わりに
sanity check
1
これは、fscanf が最初の文字を正しく読み取らなかったことを意味します -- 4. 期待されるコード機能を妨げている構文エラーがありますか? 文字をスキャンしてから、それをintに変換することになっていますか?