getch
Posted: 2016年9月02日(金) 01:42
int main(void){
test *linked_list;
default_list(&linked_list);
while(LOOP){
char buffer[256],sel;
int check,retry;
fgets(buffer,sizeof(buffer),stdin);
sscanf(buffer,"%c",&sel);
if('0'<sel&&sel<'5'){
fgets(buffer,sizeof(buffer),stdin);
}
switch(sel){
case '1':set_frontal(&linked_list,buffer);
printf("#1 ");
break;
case '2':set_interval(&linked_list,buffer);
printf("#2 ");
break;
case 3:set_rear(&linked_list,buffer);
printf("#3 ");
break;
case 4:print(&linked_list);
printf("#4 ");
break;
default :printf("終了を確認しました\a\n終了してよろしいですか?[Y/N]");
check=getch();
putchar(check);
printf("\n");
break;
}
if(check=='Y'||check=='y'){/*再確認時のユーザーの意思の反映*/
exit(1);
}
}
return 0;
}
switch文のdefaultの部分のgetch()についてです,コードを書いているときはエンターなしで読み込めれたらいいな,と思っていたけれど
やり方もわからないしとりあえず一文字読み込めたらいいなと思いgetchを選びました、そしていざテストをしてみるとエンターなしで動いたため、
あ、これでよかったのか。。。?と思っていましたが別のプログラムではエンターが必要だったような...と少しあいまいです
なぜこのようなことになったのですか???