2013-07-30 4 views
-4

일반적으로 질문하지는 않겠지 만 잠시 동안 저를 곤란하게했습니다. 그래서 내 질문에 어떻게 문자열 "HomeWTD"if 문에서 다음 코드에서 값을 확인할 수 있습니까?C++에서 함수의 반환 값을 얻으려면 어떻게해야합니까?

하여 Main.cpp :

#include "Header.h" 

using namespace Header; 

void main() 
{ 
    Home(); 
    if (NEED HELP HERE) 
    { 
    } 
} 

header.h가 :

#include <iostream> 
#include <string> 
#include <fstream> 
#include <Windows.h> 

//Create A Namespace called "Header" 
namespace Header 
{ 
    using namespace std; 
} 

//Functions 
string Home() 
{ 
    string HomeWTD; 
    string LoginTxt = "Login"; 
    string RegisterTxt = "Register"; 
    string OptionsTxt = "Options"; 
    string CreditsTxt = "Credits"; 
    string QuitTxt = "Quit"; 
    string HomeHeaderMsg = " Home "; 

    cout << HomeHeaderMsg; 
    cout << "----------" << endl; 
    cout << LoginTxt << endl; 
    cout << RegisterTxt << endl; 
    cout << OptionsTxt << endl; 
    cout << CreditsTxt << endl; 
    cout << QuitTxt << endl << endl; 

    getline(cin, HomeWTD); 

    return HomeWTD; 
} 

void Register() 
{ 
    string UsernameIn; 
    string PasswordIn; 
    string UsernameOut; 
    string PasswordOut; 

    getline(cin, UsernameIn); 
    getline(cin, PasswordIn); 

    ofstream UserFile; 
    UserFile.open(UsernameIn + ".UserSav"); 
    UserFile << PasswordIn; 
}; 
+7

기본 C++ 튜토리얼을 좋아하지 않으 셨나요? –

+0

'네임 스페이스 헤더 {네임 스페이스 사용 std; }'무엇을. –

+0

나는 그것에 더 추가 할 계획 이었지만 지금은 그렇지 않습니다. – Reborn

답변

3

중 하나는 결과를 저장하고 나중에 비교 :

string result = Home(); 
if(result == "foo") { 
    ... 
} 

또는 결과의 인라인 사용

if(Home() == "foo") { 
    ... 
} 
+0

오류가 발생했습니다 : 표현식이 bool 유형이거나 bool로 변환 가능해야합니다. – Reborn

+0

바이너리 문자열 연산자'=='는 bool을 반환합니다. 내가 제안한 것을 수행하지 않았거나 코드의 다른 부분에 오류가 있습니다. – paddy

+0

감사합니다. 제가 살펴 보겠습니다. – Reborn

0
#include "Header.h" 

using namespace Header; 

void main() 
{ 
    string answer = Home(); 
    if (answer == "something") 
    { 
     ... 
    } 
} 

Home()을 사용하는 것은 HomeWTD 값을 사용하는 것과 같습니다.

+3

함수를 두 번 호출하고 있습니다. OP가 C++을 이해하는 데 이미 어려움을 겪고 있다고 가정하면, 이는 잘못된 생각을 줄 것입니다. – paddy

+0

@paddy 아, 그게 효과가 있다고 생각했습니다. 어떻게 해결할 수 있습니까? –

+0

@paddy nevermind. 나는 그것을 고치는 법을 안다. –

관련 문제