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

libinden71 2016-05-25 04:23:50
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关闭时就关闭失败) 命令行的参数无误!请问这是为什么啊?表示不明白啊!
...全文
49 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
libinden71 2016-05-25
  • 打赏
  • 举报
回复
引用 1 楼 wang0635 的回复:
if ( fp = fopen(str, "r") == NULL ) 改成 if ((fp = fopen(str, "r")) == NULL)
忘记括号了 感谢!
wang0635 2016-05-25
  • 打赏
  • 举报
回复
if ( fp = fopen(str, "r") == NULL ) 改成 if ((fp = fopen(str, "r")) == NULL)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧