用 C 语言编程:如果写在里面,则退出无限循环

Posted

技术标签:

【中文标题】用 C 语言编程:如果写在里面,则退出无限循环【英文标题】:Programming in C: Exit endless loop if written inside 【发布时间】:2016-12-09 18:15:06 【问题描述】:

如果添加了新关系,我将需要退出此循环! 只要为空或按“Enter”,就需要继续。

CODE:
static char input[100];

int main()

  printf("Press Ctrl+c to Exit!\n");
  while(1)
  
    //Input (stdin) and output (stdout) declared in <stdio.h> library
    fputs("esp>", stdout);
    fgets(input,100,stdin);

    if(input != 0) //here I can not change it !!!
      return 1;
  
return 0; 

输出:

Press Ctrl+c to Exit!
esp> (If "enter" is pressed) keep going
esp>
esp> s ( if something wrong is written, exit) else, keep going

【问题讨论】:

我不明白你的问题是什么。听起来您想根据某些条件退出循环,但您的代码已经在这样做了。这就是if 语句的作用;如果input !=0,它会跳出循环并立即返回1。否则,它会一直循环。那么……你的问题是什么?代码的哪一部分不起作用? 你知道你可以用break; 打破循环,是吗?所以你应该澄清你的问题是什么 @IngoLeonhardt esp> s(如果写错了,退出)否则,继续我需要程序在 while 循环中,只要没有输入 if( strcmp( input, "\n" ) != 0 ) ... ? (win 中可能是 `"\r\n") @CodyGray 如果条件无法正常工作。只要它为空,我就需要 while 循环运行。否则,我需要它退出,然后做其他事情。 【参考方案1】:

如果你只是想检查空输入,试试这个?

while(1)

    fputs("esp> ", stdout );
    fgets( input, 100, stdin );

    if( input[0] != '\n' && strlen(input) )
    
        // Do something with input
    

【讨论】:

以上是关于用 C 语言编程:如果写在里面,则退出无限循环的主要内容,如果未能解决你的问题,请参考以下文章

RecyclerView里面嵌套一个无限循环的横向列表该怎么做

C 语言文件操作 ( 配置文件读写 | 框架搭建 | 主函数逻辑结构 | 启动无限循环 | 接收用户操作值 | 宏定义 | 显示操作菜单 )

RecyclerView里面嵌套一个无限循环的横向列表该怎么做

停机问题的通俗理解

如果其他条件产生无限循环,则继续语句[关闭]

C语言中死循环怎么解决?