-1

ファイルを開けないのはなぜですか?

4

2 に答える 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()fromを使用しますstdinが、これを削除する必要があります'\n'

于 2012-10-09T17:07:24.570 に答える