如何使用c++在没有读线的情况下显示字符串中的多个单词

How to display multiple words in string without readline using c++?

本文关键字:显示 情况下 字符串 单词 c++ 何使用      更新时间:2023-10-16

我使用的是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";
}

您做得很正确,但主要问题是您使用的是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
}

使用std::getline (std::cin, address1);,而不是cin。因为cin使用空格作为分隔符。

这个怎么样?一种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";
}

开始

#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
相关文章: