我试图在命令行从标准输入读取任意长度的一行。我不确定是否能够包含GNU readline,而且更愿意使用库函数。
我阅读的文档建议使用getline
函数可以实现,但在我的实验中它没有阻塞。以下是我的示例程序:
#include <stdio.h>
int main()
{
char *line = NULL;
if (getline(&line, NULL, stdin) == -1) {
printf("No line\n");
} else {
printf("%s\n", line);
}
return 0;
}
输出结果为No line
,不适合接受用户输入。
我该怎么做?我知道这应该很简单,但我一直没有弄明白。
getline()
确实会阻塞(我刚在stdin
上测试过)。你能发一下示例代码吗? - LSerni