なし整数からポインタになり、私は、ファイルが存在するかどうかを確認するために、この機能を持っている:警告:パッシング「のfopen」の引数2は、キャスト
#include <stdio.h>
int main(int argc, char **argv) {
int textFileExists(const char *filename){
FILE *fp= fopen(filename,'r');
if(fp==NULL){
printf("%s %s.\n","There was an error opening ", filename);
return -1;
}
return 1;
}
textFileExists("text.txt");
return 0;
}
をしかし、私はこのコードをコンパイルするとき、私はこの警告が表示されます。
warning: passing argument 2 of ‘fopen’ makes pointer from integer without a cast
FILE *fp= fopen(filename,'r');
このコードを実行すると、セグメント化エラーが発生します。
ここでは何が起こっていますか?
''r'' ===>' "r" ' – WhozCraig
' fopen'の第2引数は、文字( 'char')ではなく文字列(' char * ')でなければなりません。 '' r''を '' r''に変更してください。 '' r ''は文字で、' 'r" 'は文字列リテラルです。 –
参照:[一重引用符CまたはC++の二重引用符](http://stackoverflow.com/questions/3683602/single-quotes-vs-double-quotes-in-c-or-c)を参照してください。 –