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关闭时就关闭失败) 命令行的参数无误!问一下这是为什么啊?表示不清楚啊!
{
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)
改成
if ((fp = fopen(str, “r”)) == NULL)