C言語のfopen関数で「警告: 2 番目の ‘fopen’ の引数へ渡すときに整数からキャスト無しにポインタを作成しています [デフォルトで有効]」と言うエラーが出たときの対処法
解決してみると相当しょうもない事でハマってしまったので、メモとして解決策を書いておきます。
今回C言語のfopen関数を触って出たエラーは以下の通り。
bf.c:50:3: 警告: 2 番目の ‘fopen’ の引数へ渡すときに整数からキャスト無しにポインタを作成しています [デフォルトで有効] if ((fp = fopen(fileName, 'r')) == NULL) { ^ In file included from bf.c:2:0: /usr/include/stdio.h:272:14: 備考: expected ‘const char * __restrict__’ but argument is of type ‘int’ extern FILE *fopen (const char *__restrict __filename,
警告: 2 番目の ‘fopen’ の引数へ渡すときに整数から...のエラーの対処法
上記のエラーが発生している時は、おそらくC言語で以下のコードを書いた時だと思う。
if ((fp = fopen(fileName, "r")) == NULL) { // fopen() 関数が呼ばれる時にエラーが発生。 printf("ERROR! can not find a such file\n"); exit(1); }
このエラーが出たときにチェックすべき点は、モードがダブルクォーテーション " になっているかどうかの部分だ。
fp = fopen(fileName, 'r')
上記の例だとr
の部分がシングルクォーテーションで囲われているからエラーが起こる。
これを以下のように修正する。
fp = fopen(fileName, "r")
ボクの場合は、これだけでエラーが治った。
参考記事:C言語関数辞典 - fopen
参考記事:Single quotes vs. double quotes in C or C++ - Stack Overflow