【发布时间】:2014-09-10 16:15:19
【问题描述】:
我想创建一个 while 循环,不断询问用户输入,直到用户 ctrl-d 退出。我怎样才能正确地做到这一点?我现在正在使用这个:
while (1)
{
printf("Enter host name: ");
fgets(user_input, 1000, stdin);
}
这可行,除了用户必须点击 ctrl-c 来结束程序。我想不断询问用户的输入,直到他/她点击 ctrl-d。我该怎么做?
【问题讨论】:
-
if(NULL==fgets(user_input, 1000, stdin))break; -
do printf(...) while (fgets(...) != NULL); -
@WhozCraig do..while 的唯一问题是它没有机会在再次提示之前处理 fgets 返回的数据。
-
@par 从未说过会,但它是作为 OP 发布版本的自断循环的替代方案,这同样奇怪。我同样思考了为什么发布的循环是原样的。
while (printf(...), fgets(...)) {...}怎么样 -
"我想不断地询问用户......" 所以即使用户已经输入了一些内容并且没有'还没有按下
?
标签: c