使用我在 Stack 上找到的这段代码:
...
char buffer[256]
while((count=read(0, buffer, 256)) > 1)
{
if(buffer[count] = '\n') break;
}
buffer[n-1] ='\0';
我可以从标准输入读取,但我有 2 个问题:
- 为什么在 if() 中使用
'='
而不是'=='
? - 如果我在写完东西后按
CTRL-C
,我怎么能保留我写的东西 写了?
谢谢
最佳答案
Why is '=' used in the if() instead of '=='?
在 if 语句中,这可能是一个拼写错误。因为
buffer[count] = '\n'
将始终为 '\n',在 C 中为“true”(非空)。
If I press CTRL-C after writing something, how can I keep what I wrote?
在终端中按 CTRL-C 将向正在运行的进程发送一个 SIGINT。通常你的应用程序会立即退出,不管它在做什么。
您可以使用 some lines of code 捕获 SIGINT 事件,但是“保留你写的东西”有什么意义呢?
关于c - 如何在 CTRL-C 之前保持输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15414548/