• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

제가 알고 있는게 맞는지 훈수좀요!!

23.01.02 16:50 작성 23.01.02 17:00 수정 조회수 212

0

ignore()함수는 cin연산자?? 의 구성요소 중 하나이고

 

cin은 std에 정리 되어 있으며 이 std는

 

iostream이라는 라이브러리(도서관)에 정의 되어 있다......!라고 하면 되는 건가요

 

그리고 ignore(x,y)는 x까지 입력을 받거나 y를 만나면 그 이후는 무시하라! 라고 이해하면 되는 거죠?

 

그리고 지금 드는 의문인데요 using namespace std;를 사용하고 있는데 ignore()이랑 fail()은 왜 앞에 std::cin을 붙여줘야 하죠?

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2023.01.03

넵 :)

ignore과 fail의 경우에는..

std::를 붙여도 되고 떼도 됩니다.

아래 코드로 확인해보시겠어요?

#include <iostream>

using namespace std;

int getInt()
{
	cout << "Enter an integer number : ";
	int x;
	cin >> x;
	if (cin.fail()) 
	{
		cin.clear(); 
		cin.ignore(32767, '\n'); 
		cout << "Invaild number, please try again" << endl;
	}
	else
	{
		std::cin.ignore(32767, '\n');
		return x;
	}
}

char getOperator()
{
	cout << "Enter an operator (+,-) : ";
	char op;
	cin >> op;
	return op;
}
void printResult(int x, char op, int y)
{
	if (op == '+') cout << x + y << endl;
	else if (op == '-') cout << x - y << endl;
	else
	{
		cout << "Invalid operator" << endl;
	}
}

int main()
{
	int x = getInt(); 
	char op = getOperator(); 
	int y = getInt();

	printResult(x, op, y);

	return 0;
}
김범준님의 프로필

김범준

질문자

2023.01.03

호오 확인했습니다 감사합니다!