4

ユーザーのキーボード入力から2つの文字列を読み取りたいのですが、これは私が試したコードです:

char nomFichier[50], emp[100], empEtNomFichier[150];
printf("\nDonner le nom du fichier : ");
fgets(nomFichier, sizeof nomFichier, stdin);
printf("\nDonner l'emplacement du fichier : ");
fgets(emp, sizeof emp, stdin)
sprintf(empEtNomFichier, "%s/%s", emp, nomFichier);

問題は、このコードを実行すると、プログラムが最初のキーボード入力を待機しないことです。fgets()これがプログラムの外観です。

Donner le nom du fichier : 
Donner l'emplacement du fichier : /home/ee/Desktop
/home/ee/Desktop
4

3 に答える 3

0

試す:

char nomFichier[50], emp[100], empEtNomFichier[150];
printf("\nDonner le nom du fichier : ");
fflush(stdout);
fgets(nomFichier, sizeof nomFichier, stdin);
printf("\nDonner l'emplacement du fichier : ");
fflush(stdout);
fgets(emp, sizeof emp, stdin)
sprintf(empEtNomFichier, "%s/%s", emp, nomFichier);

stdout は行バッファリングされているため、\n 文字なしでは出力されません - fflush(); を試してください。

または試してください:

char buf[256]={0x0};
setvbuf(stdout, buf, _IONBF, 256);
于 2013-09-29T02:11:48.487 に答える