ファイルを開けないのはなぜですか?
質問する
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()
fromを使用しますstdin
が、これを削除する必要があります'\n'
。
于 2012-10-09T17:07:24.570 に答える