无限循环直到按下键

时间:2016-11-16 18:34:58

标签: c loops

#include <stdio.h>
void main()
{
    int a=1;
    char c;
    x:for(a=1;a!=0;a++)
    {
        printf("Hello\n");
        c=getch();
        if(c=='n')
            exit(0);
        else
            goto x;
    }
}

//请仅使用主要操作员

帮助我完成此程序

3 个答案:

答案 0 :(得分:1)

这有点不同,为您展示一个简单的解决方案。但是,如果你不被允许使用kbhit,你就会陷入困境。

#include <stdio.h>
#include <conio.h>              // include the library header

int main(void)                  // correct signature for main
{
    int c = 0;                  // note getch() returns `int` type
    while(c != 'n')             // until correct key is pressed
    {
        do {                    // forever
            printf("Hello\n");
        } while(!kbhit());      // until a key press detected
        c = getch();            // fetch that key press
    }
    return 0;
}

请记住,它只测试小写n

答案 1 :(得分:1)

发布的代码无法编译!

以下代码将完成这项工作。

请注意goto已被删除

请注意,不需要的变量已被删除

请注意,包含了相应的头文件

注意main()函数的签名已更正

#include <stdio.h> // printf()
#include <conio.h> // getch() kbhit() <-- use correct header file

int main( void )          // <-- use valid signature
{
                          // <-- eliminate unneeded variables
    while(1)              // <-- non-confusing (and simple) loop statement
    {
        printf("Hello\n");

        if( kbhit() )
        { // then some key has been pressed
            if( 'n' == getch() )
            { // then 'n' key has been pressed
                break;        // <-- exit the loop
            }
        }
    }
} // end function: main

答案 2 :(得分:0)

试试这个。

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(void) {
    char c='y';
    while(c!='n') {
        while(!kbhit()) {
            printf("Hello\n");
        }
        c=getch();
    }
}

请注意我没有编译,因为 conio.h 目前无法使用。