我在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'在我的字符串末尾也是。
答案 0 :(得分:5)
这是因为&infilename
,它为您提供了一个指向字符数组的指针。删除地址操作符,它将起作用。
答案 1 :(得分:1)
&infilename
是指向数组的指针,这意味着它是指向char (*)[9]
类型对象的指针。
但是,infilename
将是char (*)
类型的指针,它指向数组的第一个元素。
infile = fopen(infilename, "r");