0
#include<stdio.h>
int main()
{
float p, r, t;
char ch = 'y';
do
{
printf("Enter principal: ");
scanf("%f", &p);
printf("Enter rate: ");
scanf("%f", &r);
printf("Enter t: ");
scanf("%f", &t);
printf("SI = %f", (p *r * t)/100);
printf("\nCalculate SI one more time ? ('Y' for Yes, 'n' for no) : ");
ch = getchar();
}while(ch == 'y');
return 0;
}
出力:C:scanf関数を使用して入力を受け取ることができません()
Enter principal: 1334
Enter rate: 4
Enter t: 2
SI = 106.720000
Calculate SI one more time ? ('Y' for Yes, 'n' for no) :
Process returned 0 (0x0) execution time : 5.359 s
Press any key to continue.
私はSI秒の時間を計算することができません見ることができるように?何が問題ですか ?
私も(scanf関数によってGETCHAR()を交換しようとした)が、それはまだ数は(それの一部であることができない最初の文字で)完了したときに読み取りを停止scanf
'ch = getchar();'入力バッファにまだ 'newline'があり、前の' scanf'で残っています。 –
@WeatherVaneあなたは何が起こっているかをplsで説明しますか? – Cody
ほとんどの形式( '%c'ではなく)の' scanf'は、* leading *空白を取り除きますが、後続のものは入力バッファに残します。文字ベースの入力関数は、そこにあるものを正確に取ります。 –