-3
私のプログラムでは、入力を取って制御するための関数が1つしかありません。私は、ユーザーがa、-11を押すと、プログラムが終了しないことを意味します。ユーザーが-1を押さなかった場合にのみ、入力を確認して関数 "input"を繰り返すにはどうすればよいですか?スイッチ内の関数を呼び出す
void input (double *l1){
double temp1=0;
printf("\nInsert the first value: ");
while (scanf("%lf",&temp1) != 1){
printf("Reinsert the first value: ");
while (getchar() != '\n');
}
そして、これがメインです:
int main(){
int flag,num;
double a;
do{
switch(flag){
default:
input(&a);
printf("PRESS -1 TO QUIT: ");
scanf("%d",&flag);
if (flag != -1) {
num=1;
}
else num=0;
break;
}
}while(num != 0);
printf("\nTHANK YOU!");
}
今I'have唯一の問題は、私は(例:A、B、AA)の任意の文字を押すと、-1の代わりに、その値を関数の入力で使用されていますが、私は望んでいません! 私は、-1を押すと、他のケース(キャラクタまたは他の数字)のプログラムから-1を終了し、メインコールを入力としたいと思っています。どうすればいいですか?
ユーザーはキーボードからどのように '-1'を入力しますか? '' - ''は 'char'とみなされるので、入力を取っている間にそれを考慮する必要があります。 '-1'を入力すると' int'変数に '-1'が格納されません。 – ameyCU
なぜ 'case'もなく' default: '...'スイッチ 'を持っていますか?それは**役に立たないです!! –
'printf'の最後に' \ n'を置きます。すべての警告とデバッグ情報でコンパイルします( 'gcc -Wall -Wextra -g')。 **デバッガ 'gdb'を使用する** –