#include<stdio.h>
#include<stdlib.h>
int main()
{
float rlfdl, shvdl;
char a;
do
{
printf(\"밑변의 길이 = \");
scanf(\"%f\", &rlfdl);
printf(\"높이 = \");
scanf(\"%f\", &shvdl);
printf(\"입력한 삼각형의 넓이는 %.1f입니다.\", rlfdl*shvdl/2);
printf(\"\\n계속하시겠습니까? \");
scanf(\"%c\", &a);
}while((a==\'Y\')||(a==\'y\'));
return 0;
}
실행하면 잘 출력되다가 \"계속하시겠습니까? \" 나오고 나서 a값 받지도 않고 그냥 리턴하고 끝내버리네요
어디가 잘못된 건지 가르침을 좀 주세요 ㅠㅠ
헐 이제 알았는데 모니터에 기스났었네 ㅠㅠ
문제가 나는 이유!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 삼각형의 높이를 치려고 \"엔터\"!!!!!!!!!!!!! 를 누르면 scanf(\"%c\", &a); 이 멍청한 개갞끼가 아 주인님이 \'\\n\'(엔터)를 변수 a에 입력하시는구나 꾸웪꾸웪 하고 ㅂ신같이 while문을 탈출해버림!!!!!!!!!!!
해결방법 A!!!!!!!!!!!!!!!! scanf(\"%c\",&a); 요놈을 fflush(stdin); getchar(); 로 바꾼다!!!!!!!!! 사용안하는 변수 a는 지워버렷!!!!!! ANG?
오오 쏘리 코드를 잘못봤네 부왘부왘 fflush(stdin); a=getchar(); 이렇ㄱㅔ 하면 되느구나~!!!!!!!!!!!!!
헐! 이런 멍청한! 스캔에프 개객기
fflush(stdin)가 뭐하는 구세주인지 알아봐야 되겠군여!
하하하 오데서프님 #include<conio.h>하고나서 getchar대신 getch()쓰면 더 간지나게됨!! 무려 엔터를 안눌러도 실행!!! 어맛 붘왘부왘
stdin ::: 님이 키보드로 친 입력들이 다 여기에 저장됨!!! 입력 버퍼라고 함!!
fflush(stdin) 입력 버퍼 stdni 에 들어있던 값을 없애줌!!!!!!! 즉 !!!!!!!! 님이 쳤던 \'엔터\'를 없앤다는 뜻이지요!!!!!!!!!!!!!!
하하 scanf 안에서 %c를 읽거나, getchar()이런애를 호출할땐 공백으로 남긴 스페이스바, 탭, 엔터도 다읽으니 fflush를 필요에따라 해주셔야됩니다
아힘드러 저도 1년전에 저실수했었음 즐프하세요 ㅋ
좋은 넘이네여 뀨잉뀨잉 근데 표준이 아니라고 쓰지 말라는 사람이 있는데 어떻게 생각하십니콰
표준이 아니라기보단 undefined behavior로 미정의 동작이 일어날 가능성이 있는거라, 그냥 잠깐 쓸 코드고 잘 돌아가면 냅둬도 되는데 나중을 위해 확실히 알고 쓰는게 좋을겨
답변 감사합니다 횽님
자바는 C언어로 남의 과제 자신있게 대행해 줄 수 있을 만큼은 하고 볼 계획이에요 ㅋㅋ