为什么它让我无法打开文件?
问问题
229 次
2 回答
3
错误在于 fgets() 在读取字符串中包含换行符。
类似以下内容将用于删除换行符:
int n;
n = strlen(filesIn);
if (n > 0) filesIn[n-1] = 0;
n = strlen(filesOut);
if (n > 0) filesOut[n-1] = 0;
于 2012-10-09T17:06:43.177 回答
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()
fromstdin
是可行的方法,但您必须将其'\n'
去掉。
于 2012-10-09T17:07:24.570 回答