그러한 방식의 설계보다는, q 를 눌렀을 때 종료되도록 하는게 좋겠네요.
0 이라는 숫자(문자)보다는 s 를 누르면 처음으로 돌아가거나...(사실 이부분은 불필요합니다)
항시 2가지 숫자를 받도록 하고 while (TRUE) 해놓고,
scanf 로 받나요? 아무튼 그걸로 숫자(문자)를 받아서.. q 일 때 종료되도록 하면 됩니다.
'q' 라는 문자 코드가 있을거고, 아.. 그냥 문자로 받아서,
"q" 문자가 있으면 종료하고, atoi() 함수로 문자를 숫자로 바꿔주면 되겠네요.
공부하시라고 일부러 루비로 짰습니다. 님 원하시는게 스레드로 구현해야 합니다.
스레드로 안 하면 poll 이런걸로 입출력 다중화 기법을 이용해야 하고요.
c 초보자가 스레드/입출력다중화를 다루는 것은 무리가 따를 것 같네요.
타이머로 100초 체크하는것보다 q 눌렀을 때 바로 종료하는게 좋습니다.
h 누르면 설명 출력해주도록 하시는 게 좋겠습니다.
어떻하긴요... 키보드 0 키를 누르면 계산기 작업을
어떻하긴요... 키보드 0 키를 누르면 계산기 작업을 다시 시작하게 하면 되죠
(-.-)b
(-.-)b
------------------------------------------------------------
ProgrammingHolic
어..... 코드 말하는거에요...
코드 말하는건데
네 코드 말하는겁니다
코드에다가 키보드 0 키를 누르면 계산기 작업을 다시 시작하게 하면 되죠
그게... 제가 코드를 잘몰라서요..
무시하셔도 돼는데 찾아봐도 안나와서요
코드를 정확히좀 알려주시면 안될까요?
지금 계산기 코드 보여드릴게요
#include
int main(void)
{
int val1;
std::cout<<"첫 번째 숫자입력: ";
std::cin>>val1;
int val2;
std::cout<<"두 번째 숫자입력: ";
std::cin>>val2;
int result=val1+val2;
std::cout<<"덧셈결과: "< return 0;
}
while 문에서 받고 0 값인지 체크하고 0 값이면
while 문에서 받고 0 값인지 체크하고 0 값이면 루플 처음으로 가면 되는데... 그런데 저렇게 하면 0 값을 덧셈할 때 사용을 못할텐데요
써놓고 보니 설명이 좀 이상하네요
써놓고 보니 설명이 좀 이상하네요
아무튼 말이죠... loop 가 있어야 되고..
아무튼 말이죠... loop 가 있어야 되고.. loop 탈출 조건이 있어야 합니다.
loop 시작은 어떻게 하나요?
탈출조건은 if문 사용하면 돼나요?
계산끝나기 전에는
계산끝나기 전에는 0값을 계산에 사용할수있게 하고
계산끝나고 나서부터 0을 다시 시작하는 키로 만들수는 없을까요?
사용자가 아무것도 안 누른다면? 뭔가 누를 때까지
사용자가 아무것도 안 누른다면? 뭔가 누를 때까지 기다리나요?
0 말고 다른 키를 누르면 무엇을 하나요?
다른키를 누르면
"이 키는 쓸수없습니다" 라는 말과 함께
다시 계산기 작업완료 화면으로 돌아가기
할겁니다
그리고
아무키도 안 누르면 100초 정도 기다리고 나서
프로그램을 종료하고요
그러한 방식의 설계보다는, q 를 눌렀을 때
그러한 방식의 설계보다는, q 를 눌렀을 때 종료되도록 하는게 좋겠네요.
0 이라는 숫자(문자)보다는 s 를 누르면 처음으로 돌아가거나...(사실 이부분은 불필요합니다)
항시 2가지 숫자를 받도록 하고 while (TRUE) 해놓고,
scanf 로 받나요? 아무튼 그걸로 숫자(문자)를 받아서.. q 일 때 종료되도록 하면 됩니다.
'q' 라는 문자 코드가 있을거고, 아.. 그냥 문자로 받아서,
"q" 문자가 있으면 종료하고, atoi() 함수로 문자를 숫자로 바꿔주면 되겠네요.
그리고 위 코드는 숫자를 한번씩 받는데, 9 9
그리고 위 코드는 숫자를 한번씩 받는데, 9 9 이렇게 입력하면 한번에 9와 9를 받을 수 있습니다.
9 + 9 이렇게 해서 연산자까지 받아서 + 연산을 시키거나 - 연산을 시키는 방법도 있겠죠.
공부하시라고 일부러 루비로 짰습니다. 님 원하시는게
공부하시라고 일부러 루비로 짰습니다. 님 원하시는게 스레드로 구현해야 합니다.
스레드로 안 하면 poll 이런걸로 입출력 다중화 기법을 이용해야 하고요.
c 초보자가 스레드/입출력다중화를 다루는 것은 무리가 따를 것 같네요.
타이머로 100초 체크하는것보다 q 눌렀을 때 바로 종료하는게 좋습니다.
h 누르면 설명 출력해주도록 하시는 게 좋겠습니다.
감사합니다
그 코드로 한번 실행해보고
제 입맛대로 더 수정해보도록 하겟습니다
그럼 이코드는
루비 컴파일러 사용해서 하면 돼나요?
파일을 calc.rb 로 저장 후, 루비를
파일을 calc.rb 로 저장 후, 루비를 설치하시고
하면 됩니다.
네
감사합니다 ㅎㅎ
저기
루비 컴파일러를 압축 풀기하니까 폴더가 있는데
루비 파일 실행할때 컴파일이 안돼요
루비는 (컴파일러가 존재하기도 하지만요) 인터프리터
루비는 (컴파일러가 존재하기도 하지만요) 인터프리터 언어에요. 그렇게 말씀하시면 제가 초능력자도 아니고.... 어떻게 답변을 드려야할까요? ㅠㅠ
알겟습니다
제가 유튜브 찾아보도록 하겟습니다
...
이렇게 낭비하는 시간이 공부 하는 시간 못지 않게 듭니다.
......
......
1. 좋은 C++언어 교본 하나 구해다가 조건문, 반복문 등등 차근차근 공부하는 게 정석적인 길입니다.
정석을 놔두고 쉬운 길을 찾으려다가 되려 더 어려운 길로 빠지게 되는 경우가 더러 있는데, 이 질문글의 경우도 바로 그런 경우가 아닌가 싶네요.
2. 질문자가 원하는 프로그램이 뭔가 굉장히 구체적인데, 그런 것 치고 이상한 방향으로 구체적이군요.
예컨대, 왜 하필 100초입니까? 그리고 0을 제외한 키는 왜 "사용이 불가능"하죠?
이런 종류의 요구 조건은 과제라고 봐도 이상하고, 개인적인 연습이라고 봐도 이상하고, 실용적인 목적이라고 봐도 이상합니다.
위 요구 조건이 프로그램을 공연히 복잡하게 만들고 있다는 걸 알아두셔야 됩니다. 프로그램이 사용자의 입력을 기다리면서 동시에 100초를 헤아리고 있게 만들기 위해서는 번거로운 방법을 동원해야 합니다. (여러 가지 방법이 있습니다.)
만약 이 요구조건이 과제의 일부로써 나온 문제라면, 출제자가 그 사실을 고려하고 출제를 한 것인지 의문이 드는데요.
죄송합니다...
그냥 좋은책 하나 사서 공부하면서 하겟습니다
처음부터 잘 생각하셔야 할 듯.
0+1 계산하려고 0 눌렀는데 계산기 프로그램 끝나버리면 어쩌죠?
원하는 바가 무엇인지 잘 생각해보셔요.
어떻게 하느냐는 그 다음에 생각하시고요.
세벌 https://sebuls.blogspot.kr/
댓글 달기