4

私はこのコードを持っています:

int main(int argc, char * argv[])
{
int i;
printf("%d%s",argc,argv[1]);
return 0;
}

このコードを次のように実行すると、a.out a\=b=使用していますC-shell

その出力は " a=b=" です。出力を " " に変更する方法はありますかa\=b=

4

4 に答える 4

7

printf()単一のバックスラッシュを無視しているのではなく、C 文字列が解析される方法です。バックスラッシュは、改行 ( ) や埋め込み引用符 ( ) など、文字列に簡単に入力できない文字を示すエスケープ文字です。したがって、バックスラッシュを含めるには、2 つのバックスラッシュ ( ) を含める必要があります。これはすべての文字列に適用され、 とは関係ありません。\n\"\\printf()

于 2012-06-28T12:06:28.110 に答える
1

\、C の文字列のエスケープ文字です。これを使用して、改行 ( ) などの特殊文字にアクセスします\n。に文字としてアクセスする場合は\、エスケープする必要があります: \\

于 2012-06-28T12:07:18.343 に答える