我正在使用Visual C ++ 6.0并且当前创建了一个程序,它将打印存储在字符串中的输出。
问题是当我输入带空格的单词时,只有第一个单词在输出中可见。
示例:
Enter your address: new york
new
Press any key to continue
我想要这个:
Enter your address: new york
new york
Press any key to continue
另外,我尝试使用getline
但是当我输入单词时,它将首先打印空白区域,然后将最后一个输出存储在当前输出之前。
这是我的代码:
#include <iostream>
#include <string>
using namespace std;
void main()
{
string address1;
cout<<"Enter your address:";
cin>> address1;
// getline(cin, address1); code when using getline
cout<<address1<<"\n";
}
答案 0 :(得分:1)
使用std::getline (std::cin, address1);
,而不是cin。因为cin
将空格作为分隔符。
答案 1 :(得分:1)
这个怎么样?一种getline概念,假设换行符是'\ n',根据您的平台,unix或windows等根据需要进行更改
int main()
{
string addrpart, address1;
cout<<"Enter your address:";
cin>> addrpart;
while (addrpart != "x") {
address1 += addrpart + " ";
addrpart = "x";
cin>> addrpart;
}
cout<<address1<<"\n";
}
答案 2 :(得分:1)
你去吧
#include <iostream>
#include <string>
using namespace std;
int main( int argc, char** argv )
{
string userinput;
cout << "Enter your address:";
getline ( cin, userinput );
cout << userinput;
return 0;
}
$ g++ a.cpp -o app
$ ./app
Enter your address:new york
new york
答案 3 :(得分:1)
你这样做是正确的,但主要的问题是你在使用cin
而你应该避免它并使用getline(cin,address1)
,因为cin
只会占用一个字,它会不要在空格后输入任何内容。另一方面getline(cin,address1)
可以带一个完整的句子和空格
阅读评论并使用此代码
#include <iostream>
#include <string>
using namespace std;
int main()//using int main()
{
string address1;
cout<<"Enter your address:";
//cin>> address1; Don't use it
getline(cin, address1);//use this
cout<<address1<<"\n";
return 0;//returning an integer 0
}