Shift + Enter vs 在控制台中输入
Shift + Enter vs Enter in console
我正在尝试捕获通过 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] = '[=10=]';
return idx;
}
我不知道如何去掉按回车键时出现的 \n
,我想知道 shif+enter
与 enter alone
是否有区别。我了解了它在 Microsoft Word 中的作用:新段落与换行符。
答案 Removing trailing newline character from fgets() input 已在评论中链接,向您展示了解决方案。
不过,我想在这里指出另一件事。结束输入的常用方法是按 Ctrl+D,这会将 EOF 发送到程序。或者至少大多数(全部?)*nix 终端都可以。但这是特定于您使用的终端的详细信息,因此您必须阅读特定终端的文档。
我找到了 this 答案,它告诉您如何在 Windows 上进行操作。不幸的是,答案基本上是你不能很好地做到这一点。
如果我没记错的话,我们可以在 visual studio 和 Dev C++ 控制台上按 CTRL + C 退出
否则如果我们谈论 CMD 那么你应该写 exit 然后是 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] = '[=10=]';
return idx;
}
我不知道如何去掉按回车键时出现的 \n
,我想知道 shif+enter
与 enter alone
是否有区别。我了解了它在 Microsoft Word 中的作用:新段落与换行符。
答案 Removing trailing newline character from fgets() input 已在评论中链接,向您展示了解决方案。
不过,我想在这里指出另一件事。结束输入的常用方法是按 Ctrl+D,这会将 EOF 发送到程序。或者至少大多数(全部?)*nix 终端都可以。但这是特定于您使用的终端的详细信息,因此您必须阅读特定终端的文档。
我找到了 this 答案,它告诉您如何在 Windows 上进行操作。不幸的是,答案基本上是你不能很好地做到这一点。
如果我没记错的话,我们可以在 visual studio 和 Dev C++ 控制台上按 CTRL + C 退出 否则如果我们谈论 CMD 那么你应该写 exit 然后是 Enter