阅读全行输入

时间:2011-05-04 11:49:37

标签: c++

我正在尝试存储用户通过控制台输入的输入。所以我需要包括“输入”和任何空格。

cin在第一个空格后停止给我输入。

有没有办法在按下CTRL + Z之前读取整行?或者什么?

5 个答案:

答案 0 :(得分:46)

  

是否有类似readLines的方法,直到CTRL + Z被按下或者什么?

是的,正是这样,使用免费的std::getline函数(同名的istream方法!):

string line;

while (getline(cin, line)) {
    // do something with the line
}

这将从输入读取行(包括空格,但不包括换行符),直到达到输入结束或cin发出错误信号。

答案 1 :(得分:3)

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

int main() 
    string s;
    while( getline( cin, s ) ) {
       // do something with s
    }
}

答案 2 :(得分:0)

对于我的程序,我编写了下面的代码来读取输入的每个字符,直到按下ctrl + x。这是代码:

char a;
string b;
while (a != 24)
{
cin.get(a);
b=b+a;
}
cout << b;

对于Ctrl + z,请输入:

char a;
string b;
while (a != 26)
{
cin.get(a);
b=b+a;
}
cout << b;

我无法确认ctr + z解决方案是否有效,因为我在UNIX计算机上,而ctrl + z会杀死程序。但是,它可能适用于窗户,也可能不起作用;你必须亲自看看。

答案 3 :(得分:-1)

#include <string>
#include <iostream>

int main()
{

    std::cout << "enter your name: ";

    std::string name;

    std::getline(std::cin, name);

    return 0;

}

答案 4 :(得分:-1)

您可以在c ++中使用getline函数

#include<iostream>
using namespace std;
int main()
{
    char msg[100];
    cin.getline(msg,100);
    return 0;
}