2016-10-05 5 views
-1

예를 들어, 사용자가 하나가 아닌 두 개의 입력을 입력하면 어떻게 감지하고 오류 메시지를 출력합니까?C++에서 두 개 이상의 입력이 있는지 어떻게 확인합니까?

+4

입력을 읽는 데 사용되는 방법에 따라 다릅니다. –

+0

그리고 어떤 입력을 의미합니다. – Rakete1111

+0

예를 들어 한 단어 (문자열)를 입력으로 사용하고 싶습니다. 그러나 사용자는 단어를 입력하고 공백을 사용하고 다른 단어 (2 개의 입력)를 입력 할 수 있습니다. 두 번째 단어를 어떻게 발견합니까? 나는 첫 단어에 대해 하나의 문자열만을 선언했다. 두 번째 단어를 저장하지 않는다. – GoodJuan

답변

2

사용자는 두 개의 입력을 입력 할 수 있습니다.

명령 줄에서? 호출시 응용 프로그램에 전달 된 인수의 수인 argc을 확인하십시오. 런타임 중에 다른 입력을 확인 얘기하는 경우

int main(int argc, char** argv) { 
    // argc will always at least be 1, 
    // since the program name is always passed 
    if (argc > 3) 
    ... 
} 

, 그것은 다른 의견을 말하는 것처럼, 당신은 입력을 읽기 위해 사용중인 방법에 따라 달라집니다. 우리가 이것을 모르는 경우 접근법을 제안하는 것은 어렵습니다.

std::string str; 
// take everything from stdin up to the next newline 
std::getline(std::cin, str); 

이제 당신이있어 전체 입력 문자열 :

다음은 귀하의 의견에 준 당신의 예에 따라, 아이디어입니다. 공백으로 문자열을 분할하고 (here on StackOverflow의 많은 예제) 한 단어 만 구문 분석했는지 확인하십시오. 이것은 단지 예일 뿐이지 만 반드시 최적은 아니지만 올바른 방향으로 당신을 지적해야합니다.

istringstream을 사용하고 첫 번째 단어를 구문 분석하고 나머지는 무시할 수 있습니다 (this StackOverflow example에서 수정 됨).