使用" while"检查是否有空行C.

时间:2015-12-01 08:51:22

标签: c while-loop gets puts

代码是检查是否有空行。我想当我输入一些文本时,它会继续执行printf(),因为它卡在循环中。但实际上,它只执行一次printf(),并等待另一行文本。为什么?是因为输入会在gets()函数之后被擦除吗?

这是代码

int main(){
    char input[257];
    char *ptr;

    puts("Enter text a line at a time, then press Enter");
    puts("Enter a blank line when done");

    while( *(ptr= gets(input)) != NULL){
        printf("You've entered: %s\n", input);
    }
    puts("Thank you and goodbye\n");

    return 0;
}

1 个答案:

答案 0 :(得分:1)

这应该做的伎俩

while( (ptr= gets(input)) != NULL && input[0]!='\0')