Shift + Enter与在控制台中输入

时间:2019-10-31 12:20:51

标签: c shift enter

我正在尝试捕获我通过stdin流输入的所有字符,但EOF除外。我想输入多行文本:每行末尾有\n

int getline(char s[])
{
    printf("Call-getline()\n");

    int c;
    int idx=0;

    while((c=getchar()) != EOF)
    {
        s[idx++] = c;
    }

    printf("\n-EOF found--\n");

    s[idx] = '\0';

    return idx;
}

我不知道如何摆脱按Enter键时得到的\n,而且我想知道shif+enterenter alone是否有所不同。我了解了它在Microsoft Word中的功能:新段落与换行符。

2 个答案:

答案 0 :(得分:3)

答案Removing trailing newline character from fgets() input已链接到评论中,为您显示了解决方案。

但是,我想在这里指出另一件事。结束输入的常用方法是按Ctrl + D,它将把EOF发送到程序。或至少大多数(全部?)* nix终端可以。但这是您所使用的终端的特定细节,因此您必须阅读特定终端的文档。

我找到了this的答案,它告诉您如何在Windows上执行此操作。不幸的是,答案基本上是您做不到好的方法。

答案 1 :(得分:0)

如果我没记错的话,我们可以按CTRL + C退出Visual Studio和Dev C ++控制台 否则,如果我们谈论CMD,那么您应该先写出口,然后输入Enter