2012-03-15 6 views
0

にそれを書きながら、私の文字列が含まれている場合は、文字列に「\」無視:関数fprintfとfputsは、ファイル

a="abd\\aa\[1\]\\" 

と私はfputsfprintfを使用してファイルに書き込みしようとすると、それは次のように書き込み、ファイル:

"abd\aa[1]\" 

"abd\\aa\[1\]\\"をファイルに書きたいとします。どうすればこれを達成できますか?あなたは、あなたの\を逃れるようにようにする必要が

a = "abd\\aa[1]\\" 
+0

どのように文字列を入力しますか? – moooeeeep

+0

Cコードへのコマンドライン入力 –

+0

入力はCコードへのコマンドライン入力です –

答えて

1

\文字は特殊文字です。私は"abd\\\\aa\\[1\\]\\\\"がしたい

a = "abd\\\\\\\\aa\\\\[1\\\\]\\\\\\\\"; 
+0

入力に5つの連続するバックスラッシュがある場合、私の手には入力がありません。私はすべて5つをファイルに入れます。 –

+0

ファイルに書きたいバックスラッシュをそれぞれ2倍にする必要があります。私は私の答えを更新します。 – Constantinius

+0

これを行う方法この場合a = "{\\ [}"この場合に '\'があるかどうかを確認することはできません –

1

使用のダブル。

+0

入力に5つの連続するバックスラッシュがある場合、問題は入力が私の手にないことです。すべて5個をファイルに入れたい場合は問題 –

2

printf("abd\\a[1]\\"); 

もないとprintf\aを出力しますBEL文字がある\は、エスケープ文字であるため、\

0

a = "abd\\aa[1]\\"; 

EDIT

あなたは"abd\\\\aa\\[1\\]\\\\"がファイルに書き込まれるようにしたい場合は、それぞれのバックスラッシュを倍増する必要があります。このようにそれを試してみてくださいファイルに書き込まれます。

バックスラッシュの数を2倍にします。

fprintf(fp, "abd\\\\\\\\aa\\\\[1\\\\]\\\\\\\\"); 
0

'\'を文字列に入れると、次の文字は無視されます。 '\'の前に'\'を置くと、秒の関数は無視され、出力されます。

関連する問題