1

scanf() を使用した後にプログラムが gets() を実行しない理由を探すのに多くの時間を費やした後、scanf() の後に fflush(stdin) を使用して gets() を有効にして文字列を取得する解決策を見つけました。

問題は、fflush(stdin) が期待どおりに動作しないことです。プログラムは gets() をスキップし続け、コンソールに読み取り対象のフレーズを書き込むことができません。

私のコードは次のものです:

#include <string.h>
#include <stdio.h>

int main(){
    char nombre[10];
    char mensaje[80];

    printf("Type your name:\n");
    scanf("%s", nombre);

    fflush(stdin);

    printf("Now, type a message:\n");
    gets(mensaje);

    printf("3/%s:%s",nombre,mensaje);
    return 0;
}
4

5 に答える 5