C++;cin问题 < >我写了一个简单的C++函数来组合CIN字符串。我目前正在Linux上工作,所以我没有一个简单的“getline(cin,input)”命令。以下是迄今为止的代码: string getLine() { string dummy; string retvalue; do { cin << dummy; retvalue += dummy; } while return retvalue; } string getLine() { 虚拟字符串; 字符串值; 做 { cin

C++;cin问题 < >我写了一个简单的C++函数来组合CIN字符串。我目前正在Linux上工作,所以我没有一个简单的“getline(cin,input)”命令。以下是迄今为止的代码: string getLine() { string dummy; string retvalue; do { cin << dummy; retvalue += dummy; } while return retvalue; } string getLine() { 虚拟字符串; 字符串值; 做 { cin,c++,buffer,cin,C++,Buffer,Cin,我目前正在Linux上工作,所以我没有一个简单的“getline(cin,input)”命令 < Linux和它有什么关系? GETLION>代码>是标准C++,除了它拼写为代码> CIN。GETLIN(输入,大小[分隔符])< /COD> < /P> 编辑:不要删除它,因为它是一个有用的参考,但是阿拉克的文章说明了std::getline应该是那些想要std::stringistream的getline在char*上工作的人的首选。有一个getline为字符串定义的: std::string

我目前正在Linux上工作,所以我没有一个简单的“getline(cin,input)”命令

< Linux和它有什么关系?<代码> GETLION>代码>是标准C++,除了它拼写为代码> CIN。GETLIN(输入,大小[分隔符])< /COD> < /P>
编辑:不要删除它,因为它是一个有用的参考,但是阿拉克的文章说明了
std::getline
应该是那些想要
std::string
istream
getline
char*
上工作的人的首选。

有一个
getline
字符串定义的:

std::string line;
std::getline(std::cin, line);

是的。提示实际上是要求用户输入,但它需要的是一个单词而不是一行。这可能就是为什么它对空间敏感

假设你想读不止一行,你想要的是这个

#include <iostream>
...
std::string sLine;
while(getline(std::cin, sLine)) {
    // process sLine;
}
#包括
...
std::字符串sLine;
while(getline(std::cin,sLine)){
//工艺路线;
}
代码还有一些其他问题

  • cin>操作员
  • 该变量可能应称为“word”而不是“dummy”
  • retvalue+=dummy;//需要在单词之间添加空格
  • }while//while测试应该是对行尾的一些测试
问题中的循环更接近于单词读取器。 这将有助于实现这一目标

#include <string>
#include <iostream>
#include <list>
...
void getStandardInput(std::list<std::string> & stringList) {

    std::string word;
    while (true) {
         cin >> word;
         if (cin.eof())
              return;
         stringList.push_back(word);
    }
}
#包括
#包括
#包括
...
void getStandardInput(标准::列表和字符串列表){
字符串字;
while(true){
cin>>单词;
if(cin.eof())
返回;
stringList。推回(word);
}
}
getline()
位于
标题中


<>我总是忘记。

你在Do/while循环中缺少你的while语句…为什么你不能使用CIN的GETLINE成员函数?我看不到Linux上的连接和缺少<代码> GETLINE 函数。你的分布有多大,它不符合1998标准C++库?也请复制和Paste你真正的代码。很明显,那不是你真正的代码,因为while循环没有条件,而且
cin
操作符指向错误的方向。“你所指的提示”没有任何作用,因为你发布的代码根本没有运行。cin.getline(…)不是字符串,而是char *,好答案:但是,它是否表明我是C程序员,谁以前C++做过很久?)