按下Enter键后,getchar()返回的字符不是换行符

时间:2019-02-24 01:16:14

标签: c

这是代码:

#include <stdio.h>

int main()
{
    int i = 0;

    while(getchar() != '\n') {
        printf("\n%d\n", i);
        i++;
    }
    printf("second printf: %d\n", i);
    return 0;
}

仅按Enter键后的预期输出为:

  

第二次打印f:0

代替:

  

0

     

第二次打印f:1

为什么会这样? 我在Linux Ubuntu MATE上。

1 个答案:

答案 0 :(得分:2)

因此,通过阅读他的其他问题,我得到了有关anas firari环境的一些信息。这涉及某种物理调试方法。

由于终端处于原始模式,因此在键入换行符时会得到DF.join(interpolate_temps(TEMP, DF), on=['date', 'place']) 的输入。较旧的shell过去常常通过将\r\n视为非空格来解决这一问题,但是较新的shell实际上可以正常工作。