2014-04-12 4 views
0

나는이 (그냥 BTW 배우기 시작했습니다) 한 : 나는 다음에하고 싶은 말C++ - 부울 연산

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 

string mystr; 
cout << "Welcome, what is your name? "; 
getline(cin, mystr); 
cout << "Nice to meet you, " << mystr << endl; 
cout << "May i call you 1 for short? (y/n)" << endl; 
getline(cin, mystr); 
} 

; 사용자 Y 또는 N 입력했는지 여부에 기초

cout << "Well ok, " << mystr << endl; 

... :

cout << "Thank you, 1" << endl; 

OR. 어떻게 내가 이것에 관해 가겠습니까? 나는 주변을 둘러 보았지만 단어를 쓰는 방법을 모른다. Visual Studio Express를 사용하고 있으며 콘솔 응용 프로그램입니다. 아주 간단한 방법을

+0

'if' 진술을 들어 보셨습니까? –

+0

나는 그것이 그렇게 될 것이라고 생각했다. – JoeJoe2416

답변

2

:

if (mystr == "1") { 
    // ... 
} 

하지만 당신은 더 많은 오류 검사에 자신을 익숙하게, 그래서 getline 후 스트림의 상태를 확인해야합니다 :

getline(cin, mystr); 
if (cin) { 
    if (mystr == "1") { 
     // ... 
    } 
} else { 
    // error 
} 

물론, 당신은 수도를 미래의 모든 숫자를 지원하고 싶습니다. 1. 입력 문자열을 숫자로 변환해야합니다. 당신이 C++ (11)를 사용하는 경우 std::stoi를 참조하거나 문자열에 번호 변환 :


편집에 대해 과거에 유래 질문의 수천 볼 : 그냥 당신이 실제로 Y "를 확인하고 싶었다 것으로 나타났습니다 ". 그러면 그 때와 같습니다.

if (mystr == "y") { 
    // ... 
} 
1

if-else 문을 사용해야합니다. 예를 들어

#include <cctype> 

//... 

std::string name = mystr; 

std::cout << "May i call you 1 for short? (y/n)" << std::endl; 
std::getline(std::cin, mystr); 

for (char &c : mystr) c = std::tolower(c); 

if (mystr == "y") 
{ 
    name = "1"; 
    std::cout << "Thank you, " << name << std::endl; 
} 
else 
{ 
    std::cout << "Well ok, " << name << std::endl; 
}