我要检查这个功能文件是否存在:警告:传递的来自整数“的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'应为字符串('字符*'),而不是一个字符('char')的第二个参数。将''r''改为'“r”'。 “r”是一个字符,而“r”是一个字符串。 –
参见:[单引号与C或C++中的双引号](http://stackoverflow.com/questions/3683602/single-quotes-vs-double-quotes-in-c-or-c)。 –