我正在尝试编写一个C程序,用于统计和打印用户输入的制表符、空格和行数。问题在于,当它打印这些数字时,它们偏离预期。以下是我的程序代码:
int c, b, t, nl;
b, t, nl = 0, 0, 0;
while ((c = getchar()) != EOF)
{
if (c == '\b')
b++;
if (c == '\t')
t++;
if (c == '\n')
nl++;
}
printf("b=%d t=%d nl=%d\n", b, t, nl);
当我从终端输入一些数据(3行,一个空格,一个制表符)时,结果是b=1899313536,t=32768,nl=3。
int c
是一个好的适当类型,而不是char c
。 - chux - Reinstate Monica