1

私は実際の\tを出力しようとしていますが、入力からこれらのアクションを取得すると\bになります。

 int main()

    {

        int input, specialChar;

        while ((input = getchar()) != EOF)

            specialChar = 0;

        {

            if (input == '\t')

            {
                putchar('\\');
                putchar('t');  
                specialChar = 1;
            }

putchar('t'); 「t」を印刷することを想定していませんか?

    if (input == '\b')

        {
            putchar('\\');
            putchar('b');
            specialChar = 1;

        }


        if (specialChar == 0)

            putchar(input);

    }

    return 0;
}

代わりに「\377」を取得する理由を教えてください。

4

1 に答える 1

2

ループは次のとおりです。

    while ((input = getchar()) != EOF)
        specialChar = 0;

次に、ループを終了すると、次のようになります。

    {

        if (input == '\t')

        {
            putchar('\\');
            putchar('t');  
            specialChar = 1;
        }

つまり、次の場所にアクセスできます。

    if (specialChar == 0)
        putchar(input);

入力に「EOF」があります。これは、文字として、16進数、10進数、8進数でそれぞれ0xff、255、または0377です。

中かっこを動かして、ループ全体をカバーします。

于 2013-01-12T21:52:46.043 に答える