0

コードは、空白行があるかどうかを確認することです。テキストを入力すると、ループでスタックしているため、printf() を実行し続けると思いました。しかし実際には、printf() を 1 回だけ実行し、次のテキスト行を待機します。なんで?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;
}
4

1 に答える 1