C++ cin不支持录入空格

如果在C++中,用cin>>str;这种方法来接收字符串那么录入的str不能包含空格,否则它会按照空格将整个字符串切分成若干段。如果你要是想输入带空格的字符串那就要用到getline()这个函数了。

示例代码如下:

#include <iostream>
#include <sstream>   //getline 包含在 sstream 中,要include!
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	string data;
	getline(cin, data);

	cout<<"Your input is : "<<data;

	cin.get();
	return 0;
}

效果如下如所示:

C++ cin不支持录入空格

时间: 2024-10-13 07:35:54

C++ cin不支持录入空格的相关文章

一个计算器--支持去空格

// Logic.cpp : Defines the entry posize_t for the console application. // #include "stdafx.h" #include "string.h" #include "stdio.h" #include <stdlib.h> #include <math.h> float logic(char* pStr){ char* inData=pStr

cin 不能直接读入空格,可以用getline(PAT统计字符数)

#include <iostream>#include <cstring>using namespace std; int main(){    string str;    int a[200] = {0};    //    cin >> str;    getline(cin, str);    for(int i = 0; i < str.length(); i++){        if(str[i] >= 'a' && str[i

C++IO关于cin&gt;&gt;和getline的理解

这个问题困扰了我有一段时间了,趁着十一放假有时间,仔细研究了一下 首先来看一下输入输出运算符cin>>的构成:cin和>> cin>>是由两部分构成的,cin和>>,其中cin是输入流istream类的一个对象,隶属于iostream函数库 而>>则是运算符:这个运算符的作用是:从左侧cin对象中读取数据,并将它赋给右侧的运算对象 大体的大概说完了,接下来就是干货了!! ......................................

cin 与 getchar 中的坑

今天在一道题上发现一个坑. 输入三个字符,按以下规则求其平均值. (1)如果是数字0~9,那么直接参与求值: (2)如果是其他字符,则其ASCII码参与求值. 输入 输入数据有多组.第一行是数据的组数T,接下来由T行,每行有3个字符,没有其他任何多余字符. 输出 对于每组输入,根据规则输出平均值.保留2位小数. 样例输入 2 123 1A3 样例输出 2.00 23.00 这是我栽了几次坑之后,还是错的代码: #include<iostream>#include<cstdio>us

c++中字符输入函数getline、cin.getline区分

1.cin>>s; s能够是:string  s.char s[]; 这个是ostream中的函数.遇到' '(空格) , '\n'(换行),就会自己主动结束,因此假设用cin读取字符串,那么这个字符串中不能含有空格和换行. cin由于不识别空格和换行,因此假设在输入字符串的时候,在字符開始处输入了空格或换行,没有不论什么影响. #include <iostream> #include <string> #include <stdio.h> using na

scanf 和cin 的区别

笔试的时候经常遇到突然string s;cin>>s; 有的时候编译会错误,不知道为什么. 今天在练习枚举类型的时候,也遇到这样一个问题. enum weekday{Monday,Tuesday} day; cin>>day;//报错 scanf("%d",&day);//正常 周纯洁的书上也都是用scanf;看样子scanf和printf不能随便丢弃啊.毕竟是标准输入输出流,没有缓存区 scanf是格式化输入,printf是格式化输出. cin是输入流

grep、sed、awk、perl等对正则表达式的支持的差别

在各种常用的工具中, 正则表达式如此的相似却又不同. 下表列出了一些常用的正则表达式,以及其不同之处. 项目总多,遗漏必有不少,请各位看官不吝指出. 以perl的正则为基准,不同的用法以粉红色标出. grep 2.5.1 egrep 2.5.1 sed 3.02 sed 4.07 awk 3.1.1 perl 5.8.0 vim 6.1 JavaScript ?? 转义 \ \ \ \ \ \ \ 行头 ^ ^ ^ ^ ^ ^ ^ 行尾 $ $ $ $ $ $ $ n个 {n} {m,n} {m

cin 与 scanf 的不同

cin输入更方便: 首先,cin 是个C++类型对象,它的类型是basic_istream,scanf 是个不定参数的函数,其次,cin 所属的类重载了 >> 运算符,使输入更简单了,比如 double d; cin>>d;而 scanf 不一样的,double d;scanf("%lf",&d);看起来麻烦一点.另外,cin 也更安全,不会发生内存溢出.char c; scanf("%lf",&c); //这时需要8个字节的

C++获取字符cin,getchar,get,getline的区别

原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5241544.html 1.cin>> 1)最常见的是获取输入的一个字符或数字,如 int a,b; cin>>a>>b: 注意:cin>>会自动过滤掉不可见字符(如空格 回车 tab等).若不想过滤掉空白字符,可以用noskipws流进行控制. 如下程序,没有过滤掉不可见字符,输入的空格字符存入了input[1]中,也可输出. 2)获取输入的字符串,可以用数