[英]cin.Getline returns nothing
我正在嘗試學習c ++。 我現在在弦上。 我已經編寫了這個簡單的方法,應該要求輸入一個字符串然后返回它。 為此,我正在使用cin.getLine()方法,但在使用cin.getLine()之后未打印該字符串
string getString(char string[])
{
cout << "Please enter a string to process ";
cin >> string;
cout << "String in getString before process: " << string << "\n";
cin.getline(string, STRINGSIZE);
cout << "String after processing: " << string << "\n"; // here string is not printed
return string;
}
有人可以幫助我了解我在做什么錯嗎? 謝謝
您首先使用cin >> string;
讀取為std::string
cin >> string;
然后使用cin.getline(string, STREAMSIZE);
從cin
重新讀取一些內容cin.getline(string, STREAMSIZE);
不必要,請閱讀一次並返回:
string getString(char string[]){
cout << "Please enter a string to process ";
cin >> string;
cout << "String in getString before process: " << string << "\n";
// process this, do whatever you describe as processing it
cout << "String after processing: " << string << "\n"; // string is printed
return string;
}
否則,如果要使用getline
,請執行以下操作:
std::string name;
std::cout << "Please, enter your full name: ";
std::getline (std::cin,name); // or std::getline(std::cin,string, 'r'); to read
//only to delimiter character 'r'
std::cout << "Hello, " << name << "!\n";
因此要記住的是使用getline
或cin
,除非確實有某些特殊原因,否則不要同時使用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.