2011-03-16 5 views

답변

1

에 정의 된 getline()의 버전으로 할 수 있어야합니다. 이처럼 사용할 수 있습니다 : 기본 문자열과 User_supplied 문자열 :

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

int main() 
{ 
    string str; 
    getline(cin,str); 
    // Use str 
} 
4
#include <iostream> 
#include <string> 
using namespace std; 

int main(int argc, char* args[]) 
{ 
    const string defaultText = "Default string"; 
    string str; 
    string tmp; 
    getline(cin, tmp); 
    if (!tmp.empty()) //user typed something different than Enter 
     str = tmp; 
    else //otherwise use default value 
     str = defaultText; 
    cout << str << endl; 
} 
+4

문자열이 비어 있는지 확인하는 올바른 방법은 .size() 대신 .empty()를 호출하는 것입니다. – CadentOrange

+0

예, 동의해야합니다. '! tmp.empty() '로 변경했습니다. –

+0

= 문자열을 설정하는 데 사용해서는 안되지만 const 권리이기 때문에 여기에서 확인 하시겠습니까? –

1

그냥 두 문자열을 사용합니다. (user_supplied 문자열에 대해) 사용자로부터 입력을 받고이 문자열에 strlen을 수행하여 길이가 0보다 큰지 확인합니다. 그렇다면 User_supplied 문자열을 사용하십시오. 그렇지 않으면 기본 문자열을 사용하십시오.