c - Shift + Enter 与在控制台中输入

标签 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;
}

我不知道如何摆脱\n当我按回车键时我得到了,我想知道是否 shif+enter对比 enter alone有什么不同。我阅读了它在 Microsoft Word 中的作用:新段落与换行符。

最佳答案

答案Removing trailing newline character from fgets() input在评论中链接,向您展示了解决方案。

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

我找到了 this答案,它告诉您如何在 Windows 上执行此操作。不幸的是,答案基本上是你不能以一种好的方式做到这一点。

关于c - Shift + Enter 与在控制台中输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58643258/

相关文章:

javascript - 如何区分按下了哪个 'Enter'键?

c - 在 C if 语句中检查 NULL 时最好使用 OR 或 AND?

c - 使一个信号切换另一个信号的 Action

C、指针、字符串

c++ - 使用指针的 vector 移位

Javascript 为什么 onClick 被回车键调用

c - 如何在姓名前添加验证 mr 或 mrs

c++ - 位移位 - 移动移位值

Java,在数组中移动元素