void openfile(FILE *fichier,char *str){
char path;
path=(char*)malloc(sizeof(char));
fichier = fopen(&path,"r");
if (fichier)
printf("fichier chargé avec succes \n");
else
printf("ERREUR");
}
我以这种方式调用该函数:
openfile(fichier,cc);
和抄送包含“C:\Documents and Settings\Oussema\Mes 文档\test.txt”
它返回:“ERREUR”
最佳答案
这段代码毫无意义。
- 参数
str
被忽略。 path
被分配一个指向一个字符数组的指针- 参数
fichier
被忽略。函数中为其分配了一个值。这不能用于返回值。 fopen
的第一个参数是指向垃圾的指针。
尝试一下,看看为什么不同。
void openfile(FILE **fichier, char *str)
{
if (NULL == fichier) return;
*fichier = fopen(str, "r");
if (*fichier)
printf("fichier chargé avec succes\n");
else
printf("ERREUR");
}
编辑:
我更愿意将值作为返回值返回。在这种情况下,它只不过是函数 fopen
本身的详细版本。
FILE* openfile(char *str)
{
FILE *fichier
fichier = fopen(str, "r");
if (NULL != fichier)
printf("fichier chargé avec succes\n");
else
printf("ERREUR");
return fichier;
}
关于c - 我的函数 "openfile"有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24013051/