为什么我无法打开文件?

时间:2012-10-09 17:01:28

标签: c file fopen

为什么它让我无法打开文件?

2 个答案:

答案 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'删除。