c++中如何输入135 beijing road

c++中如何输入135 beijing road

                          C++中如何输入带空格的字符串

  1.C++接收字符串输入

  在C++中,接收用户输入的字符串的方式有以下几种:

  cin

  scanf

  gets

  (1)cin接收输入的字符串

  使用cin接收输入的字符串的格式如下:

  cin>>字符串变量;

  或者,

  getline(cin,字符串变量);

  例:

  charstr[100];

  cin>>str;

  或者,

  string str;

  getline(cin,str);

  

  注意:使用“cin>>字符串”接收输入的字符串时,如果输入的字符串中包含空格、跳格或回车符,则接收内容以遇到空格、跳格、回车符为止,即空格、跳格、回车符之后的字符不再被接收。使用“getline(cin, 字符串变量);”接收输入的字符串时,接收内容以遇到回车符为止,即回车符之后的字符不再被接收,但可以接收空格、跳格字符。

  以上述代码为例,如果用户输入:

  135 beijing road

  则第一段语句中str的值为“123”,并非我们想要的“135 beijing road”,而第二段语句中str的值是“135 beijing road”。


  (2)scanf接收输入的字符串

  使用scanf接收输入的字符串的格式如下:

  scanf(“%s”,字符串变量);

  例:

  charstr[100];

  scanf(“%s”,str);

  

  注意:如果输入的字符串中包含在空格、跳格或回车符,则接收内容以遇到空格、跳格、回车符为止,即空格、跳格、回车符之后的字符不再被接收。就这一点来说,使用scanf接收字符串与使用cin接收字符串类似。

  以上述代码为例,如果用户输入:

  135 beijing road

  则str的值为“123”,并非我们想要的“135 beijing road”。


  (3)gets接收输入的字符串

  使用gets接收输入的字符串的格式如下:

  gets(字符串变量);

  例:

  charstr[100];

  gets(str);

  注意:如果输入的字符串中包空格、跳格或回车符,则接收内容以遇到回车符为止,即回车符之后的字符不再被接收,但可以接收空格、跳格字符。

  以上述代码为例,如果用户输入:

  135 beijing road

  则str的值为“135 beijing road”。


  2.操作说明

  (1)正确用法

  综上分析,在C++中接收用户输入的字符串时,如果需要包含空格、跳格等字符,可以使用的方式有两种:

  string 字符串变量;

  getline(cin,字符串变量);

  或者,

  char 字符串变量[MAX];

  gets(字符串变量);


  (2)示例1  

#include <iostream>
#include <string>
  
using namespace std;
  
int main()
{
  string str;
  getline(cin,str);
  cout<<str;
  
  return 0;
}

  运行测试:


  (3)示例2

#include <iostream>
#include <string>
 
using namespace std;
 
intmain()
{
    char str[100];
    gets(str);
    cout<<str;
 
    return 0;
}

  运行测试:


温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-06
getline()可以读入含有空格的字符串,但cin.get()会将空格当作分隔符,即读到空格时,立即结束读入过程。
getline()是定义在<string>中的一个行数,用于输入一行string,以enter结束。
函数原型:getline(cin,str);
cin:istream类的输入流对象
str:待输入的string对象
2、cin.getline(char ch[],size)是cin 的一个成员函数,定义在<iostream>中,用于输入行指定size的字符串,以enter结束。若输入长度超出size,则不再接受后续的输入。
显然第一种较为简单、实用。本回答被网友采纳