Code Bye

文件指针使用循环打开文件在关闭为什么会出错

void main(int argc, char *argv[])
{
FILE *fp;
char str[100] = { 0 };
if (argc < 2)
{
printf(“%s\n”, *(argv + 1));
exit(1);
}
for (int i = 1; i < argc; i++)
{
strcat(str, “F:\”);
strcat(str, argv[i]);
printf(“%s\n”, str);
if (fp = fopen(str, “r”) == NULL)
{
printf(“%d文件打开失败\n”,i);
exit(2);
}
if (fclose(fp) != 0)
{
printf(“关闭文件失败\n”);
exit(3);
}
memset(str, 0, sizeof(str));
}
system(“pause”);
}
//使用for循环第一个打开正常 (fclose关闭时就关闭失败) 命令行的参数无误!问一下这是为什么啊?表示不清楚啊!
解决方案

30

if (   fp = fopen(str, “r”) == NULL  )
改成
if ((fp = fopen(str, “r”)) == NULL)

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明文件指针使用循环打开文件在关闭为什么会出错