为什么putchar打印一些数值而不是我要求它放的字符?
我试图打印出实际的\t和\b,当我从输入中得到这些操作时为什么putchar打印一些数值而不是我要求它放的字符?,c,C,我试图打印出实际的\t和\b,当我从输入中得到这些操作时 int main() { int input, specialChar; while ((input = getchar()) != EOF) specialChar = 0; { if (input == '\t') { putchar('\\');
int main()
{
int input, specialChar;
while ((input = getchar()) != EOF)
specialChar = 0;
{
if (input == '\t')
{
putchar('\\');
putchar('t');
specialChar = 1;
}
是putchar('t');不想打印出“t”
你能告诉我为什么取而代之的是“\377”吗 因为您的循环是:
while ((input = getchar()) != EOF)
specialChar = 0;
然后,当您退出循环时,您可以:
{
if (input == '\t')
{
putchar('\\');
putchar('t');
specialChar = 1;
}
这意味着您可以到达:
if (specialChar == 0)
putchar(input);
输入中带有一个“EOF”,作为一个字符,它分别是0xff、255或0377(十六进制、十进制和八进制)
移动你的背带,使其覆盖整个环 你的while循环正确吗?
specialChar=0
应该放在大括号内吗?
if (specialChar == 0)
putchar(input);