为什么它让我无法打开文件?
答案 0 :(得分:3)
错误在于fgets()包含读取字符串中的换行符。
以下内容将有助于删除换行符:
int n;
n = strlen(filesIn);
if (n > 0) filesIn[n-1] = 0;
n = strlen(filesOut);
if (n > 0) filesOut[n-1] = 0;
答案 1 :(得分:3)
我打算猜测是因为你在这个用例中错误地使用了fgets()。
A newline character makes fgets stop reading, but it is considered a valid character by the function and included in the string copied to str
所以你得到一个带有名字的换行符并试图打开它。
由于这是针对Linux的,因此您很可能在文件名中没有空格,您可以尝试这样做:
scanf("%s", filesIn);
如果您确实希望使用带空格的文件名,那么fgets()
中的stdin
是可行的方法,但您必须将'\n'
删除。