我正在尝试存储用户通过控制台输入的输入。所以我需要包括“输入”和任何空格。
但cin
在第一个空格后停止给我输入。
有没有办法在按下CTRL + Z之前读取整行?或者什么?
答案 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;
}