簡體   English   中英

cin.Getline不返回任何內容

[英]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";

因此要記住的是使用getlinecin ,除非確實有某些特殊原因,否則不要同時使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM