我在C中的程序读取文件中的数据,以便初始化变量,但它不会打开该文件。当它到达fopen时就会失败。Xcode为fopen和printf输出以下警告。我明白错误,但我不知道如何纠正它,我尝试了许多技巧,但它做不到,谁能帮我吗?我只想让我的程序打开Try1.txt。
不兼容指针类型将'char (*)9‘传递给类型const char*的参数
这是我的主要函数中的代码:
FILE *infile = NULL;
const char infilename [] = "Try1.txt";
infile = fopen(&infilename, "r");
if (infile == NULL)
{
printf("Failed to open file: %s\n", &infilename);
return 1;
}
注意,程序在到达if循环之前停止,因为它从不打印。我尝试初始化这个大小,并在我的字符串末尾添加'\0‘。
发布于 2014-07-31 09:04:49
这是因为&infilename
,它提供了一个指向字符数组的指针。删除地址-of接线员,它就能工作了。
发布于 2014-07-31 09:23:50
问题
&infilename
是指向数组的指针,这意味着它是指向char (*)[9]
类型对象的指针。
但是,infilename
将是char (*)
类型的指针,它指向数组的第一个元素。
修复
infile = fopen(infilename, "r");
https://stackoverflow.com/questions/25054832
复制相似问题