c - Shift + Enter 与控制台中的 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
vs是否enter alone
有什么不同。我读到了它在 Microsoft Word 中的作用:新段落与换行。
解决方案
评论中链接了从 fgets() 输入中删除尾随换行符的答案,该答案向您展示了解决方案。
但是,我想在这里指出另一件事。结束输入的常用方法是按Ctrl+ D,这会将 EOF 发送到程序。或者至少大多数(全部?)*nix 终端都可以。但这是特定于您使用的终端的详细信息,因此您必须阅读特定终端的文档。
我找到了这个答案,它告诉您如何在 Windows 上执行此操作。不幸的是,答案基本上是你不能以一种好的方式做到这一点。
推荐阅读
- php - PHP Slash 没有抛出 404
- javascript - 如何在网页中显示数组的完整对象?
- postgresql - 无法连接到 psql 控制台:psql: FATAL: Peer authentication failed for user "postgres"
- asp.net-core - .Net core api with AD B2C OAuth 2.0 - Invalid_token 错误
- image - 为什么 multiprocessing.Pool 会因大量项目而变慢
- kubernetes-helm - 使用 Helm 的不同部署配置
- r - rmarkdown 笔记本中的 bookdown 扩展
- wordpress - wordpress (avada) https: ERR_CONNECTION_REFUSED 在一些资源上
- javascript - 如何正确处理异步错误?
- html - XSD 组枚举项