c++ 숫자만 입력받기 _ cin.clear()  cin.ignore() c++ 숫자만 입력받기 _ cin.clear()  cin.ignore() 숫자만 입력 c++ cin.clear(); cin.ignore();


c++ 숫자만 입력받기 _ cin.clear()  cin.ignore()


C++ 과제를 하다가 다음과 같은 문제에 봉착하였다.

while문을 통하여, 숫자가 아닌 경우에는 다시 입력을 받는 방식인데,

관련 코드 부분만 보자면,

cout << "first input : " ;

cin >> inputNum1;

while(1){

if(inputNum1 >= 0 && inputNum1 <= 9){

break;

}

cout << "re-first input : " ;

cin >> inputNum1;

}


문제는 입력을 숫자가 아닌 다른 키값이 들어오면, 다시 입력을 받을 수 있는 상태가 아닌,

계속해서 cout상태가 무한 루프로 도는 것이였다.


기억을 되살려보니, 예전에 C언어를 할 때는 아마 buffer 문제와 관련해서 fflush()를 해주었던 기억이 있었는데, 

여기서는 fflush()를 넣어도 안되었음.


구글링 검색결과 다음과 같이 고치면, 고쳐짐

cout << "first input : " ;

cin >> inputNum1;

while(1){

if(inputNum1 >= 0 && inputNum1 <= 9){

break;

}

cin.clear();

cin.ignore();

cout << "re-first input : " ;

cin >> inputNum1;

}


여기를 참고해서 만든 코드는 아니지만, 그래도 구글링을 더 하다보니 이런 블로그 글이 있길래 참고하면 좋을 듯 하다!

주소 : http://bbolmin.tistory.com/17


C++을 처음 접하다 보니 생긴 하나의 해프닝이랄까!?

어쨋든, 요즘 어셈블리에 자바에 안드로이드에 c++에 리눅스에 정신이 없당...ㅜㅜ

한 우물을 잘 파야되는뎅..ㅜㅜ









Posted by 콜콜이
:
[콜콜이의 Daily C언어] 프로그래밍의 정의(프로그램, 프로그래밍, 프로그래머, 프로그래밍 언어)
[콜콜이의 Daily C언어] 프로그래밍(Programming)의 정의


지피지기면 백전백승이라는 말이 있다. 적을 알고 나를 알면, 무조건 승리한다라는 뜻이다. 프로그래밍을 배우고 익히기 전에, 우리가 승리해야할 적 "프로그래밍"의 정의 부터 차근차근 알아보자. 오늘은 프로그램, 프로그래밍, 프로그래밍 언어, 프로그래머에 대해 알아볼 것이다. 포스팅 쓰는데 10분도 안걸릴 것으로 예상되는 허접한 글이지만, 명색이 프로그래밍을 배우는데 프로그래밍이 무엇인지 정도는 알고 가야할 것 같아서 포스팅 하게 되었다. 그냥 눈으로만 쓰윽 지나가면 될 듯 하다.

아, 참고로 1학년 분들은 아마 암기를 해야할 지도 모른다. 내가 배울적에는 중간고사 1번 문제가 프로그램, 프로그래밍의 정의를 쓰는 것이였다. 물론 그때는 교수님께서 말해주신 내용을 써야 여기있는 내용을 쓰면, 장담할 수 없다. (내용이 부족하다는 것이 아니라, 정의쓰기 시험문제는 주로 배운데로 그대로 쓰는 것이 왕도이다.)



프로그래밍(programming)의 정의 by 콜콜이




프로그램(program)

일반적으로 컴퓨터를 실행시키기 위해 차례로 작성된 명령어 모음을 프로그램이라고 한다. 쉽게 보자면 컴퓨터 내에서는 특정 목적의 일을 수행하는 관련된 여러 파일을 뜻하기도 한다. 내가 배운 특강에서는 주어진 문제를 해결하기 위한 처리방법과 순서를 정하는 일이라고 정해져 있는데, 먼저 말한 내용들은 컴퓨터 쪽으로 압축해서 정의한 것이고, 후에 말한 내용은 좀 더 넓은 의미에서 뜻하는 정의이다.




프로그래밍(programming)

프로그래밍은 컴퓨터에 부여하는 명령을 만드는 작업이다.

수식이나 작업을 컴퓨터에 알맞도록 정리해서 순서를 정하고 컴퓨터 특유의 명령코드로 고쳐 쓰는 작업을 총칭해서 프로그래밍이라 하고, 컴퓨터의 명령 코드를 쓰는 작업을 특히 코딩(coding)이라고도 한다. 컴퓨터가 처음 나타난 1950년대 초기까지는 프로그래밍은 숫자를 나열한 명령코드를 쓰는 것이었다. 이것을 기계어(machine language)라 한다.

그러나 기계어에서는 틀리기 쉽고, 또한 틀린 곳을 발견하기가 어렵다는 등 작업하기가 곤란하므로, 그 후 인간이 외우기 쉬운 기호나 언어 ·수식을 사용해서 프로그램을 쓰고, 그것을 일단 컴퓨터에 넣어서 컴퓨터 자신의 명령코드로 고쳐 그것으로부터 계산을 실시하는 방식이 고안되었다. 이것은 프로그램을 만드는 작업의 일부를 컴퓨터 자체에 부담시켜 작업 능률을 향상시키자는 방식이다.


또한 종종 영어로 프로그래밍을 쓸 때, m을 하나만 쓰는 경우가 종종 있는데, 프로그래밍은 programming으로 표기하는 것이 옳다.





프로그래밍 언어

프로그래밍 언어는 일의 처리방법과 순서를 컴퓨터가 알아듣고 실행 할 수 있도록 명령을 내려줄 때 사용하는 언어이다. 사람과 사람사이에 의사소통을 하려면 언어가 필요 하듯, 사람과 컴퓨터 사이의 의사소통을 하도록 만들어진 언어가 바로 프로그래밍 언어이다.

프로그래밍언어의 종류에는 포트란(Fortran), 베이직(Basic), 코볼(Cobol), 파스칼(Pascal), 씨(C), 씨쁠쁠(C++), C샵(C#), 자바(Java), 어셈블리(Assembly) 등이 있다.

참고로, 발달한 프로그래밍 언어일 수록 사람의 말과 비슷하다고 한다.




프로그래머

프로그래머는 개발자라고도 알려져있다. 프로그램을 만드는 사람의 뜻인데, 정확히 표현하자면, 컴퓨터 프로그래밍의 논리나 알고리즘을 설계하고 프로그램을 작성하고 테스트 하는 사람이다. 여담으로 프로그래머가 되고 싶어요. 이런 막연한 꿈을 가지고 있는 고등학생들은 무슨과를 가야하느냐 라는 질문을 종종 받기도 한다. 혹시 모를 프로그래머 꿈나무들을 위해 컴퓨터공학과라고 인터넷을 검색하는 그 분들께 친절히 알려주고 싶다.

Posted by 콜콜이
:

[아이디어 디자인] 아이디어 신호등(독특한 신호등, 신호등 디자인, 아이디어 디자인 신호등)
[아이디어 디자인] 아이디어 신호등(독특한 신호등, 신호등 디자인)

신기한 아이디어 디자인 신호등 모음이다.
미적인 면이 뛰어나다고만 생각하면, 그것은 상용화 될 수가 없다.
아이디어 디자인 측면에서 가장 중요한 것은 아마 실용성이 아닐까?
그리고 미적인 능력을 따지는게 맞다고 생각한다.
독특한 아이디어 디자인 신호등. 신기하다.. 그리고 생각해낸 분들께 존경을 표한다.





Posted by 콜콜이
: