C++输入一行字符串的一点小结
C++输入一行字符串的一点小结
原文链接:
http://www.wutianqi.com/?p=1181
大家在学习C++编程时。一般在输入方面都是使用的cin.
而cin是使用空白(空格,制表符和换行符)来定字符串的界的。
这就导致了对于带有空格的字符串。比方”I Love C++奋斗乐园论坛”
仅仅能读入”I”,后面的都无法读入。
这时怎么办?
一.对于字符数组:
方法一:getline()
读入整行数据,它使用回车键输入的换行符来确定输入结尾。
调用方法: cin.getline(str, len);
第一个參数str是用来存储输入行的数组名称。第二个參数len是要读取的字符数。

2 using namespace std;
3
4 int main()
5 {
];
);
8 cout << str << endl;
;
}

方法二:get()
调用方法:cin.get(str, len);

2 using namespace std;
3
4 int main()
5 {
];
);
8 cout << str << endl;
;
}

那么两者有何差别?
两者都读取一行输入。直至换行符。
然后,getline将丢弃换行符。而get()将换行符保留在输入序列里。
所以,再使用cin.get()输入多行数据时,中间能够使用get()消除换行符。

2 using namespace std;
3
4 int main()
5 {
], str2[];
);
8 cin.get();
);
cout << "str1: " << str1 << endl;
cout << "str2: " << str2 << endl;
;
}

由于get(str, len)和get()都是cin的类成员。所以能够合并起来写:

2 using namespace std;
3
4 int main()
5 {
], str2[];
).get(); // 注意这里!
);
9 cout << "str1: " << str1 << endl;
cout << "str2: " << str2 << endl;
;
}

(欢迎大家去我论坛学习:C++奋斗乐园: www.cppleyuan (dot) com)
二.对于string类
方法一:getline(cin, str)
这说明这里的getline不是类方法。

2 #include <string>
3 using namespace std;
4
5 int main()
6 {
7 string str;
8 getline(cin, str);
9 cout << str << endl;
;
}

C++输入一行字符串的一点小结的更多相关文章
- 转:C++输入一行字符串的一点小结
原文链接: http://www.wutianqi.com/?p=1181 大家在学习C++编程时,一般在输入方面都是使用的cin.而cin是使用空白(空格,制表符和换行符)来定字符串的界的.这就导致 ...
- 使用getline输入一行字符串
给定10个国家名,按字母顺序输出,国家名中可以包含空格,国家名用换行隔开 #include<algorithm> #include<iostream> #include< ...
- c++ 输入一行字符串
]; //cin>>str1; 方式1 不能统计(录入)空格后的字符 cin.); //方式2 能统计空格后输入的字符 按回车键输入结束 get()会将换行符保存在序列里 //gets(s ...
- 【Python】利用递归函数调用方式,将所输入的字符串,以相反的顺序显示出来
源代码: """ 利用递归函数调用方式,将所输入的字符串,以相反的顺序显示出来 string_reverse_output():反向输出字符串的自定义函数 pending ...
- python输入一行字符,判断不同字符数量
输入一行字符,判断不同字符的数量, 分别用for循环和while循环完成 for循环 运用了字符串方法, isupper()判断是否为大写字母 islower()判断是否为小写字母 isdigit() ...
- 汇编语言从键盘输入一个字符串(串长不大于80)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z)
(1)从键盘输入一个字符串(串长不大于80). (2)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z). (3)输出原字符串且令非字母字符闪烁显示. (4)找出字符串中ASCI ...
- python基础练习题(题目 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数)
day10 --------------------------------------------------------------- 实例017:字符串构成 题目 输入一行字符,分别统计出其中英 ...
- string.Format出现异常"输入的字符串格式有误"的解决方法
string.Format出现异常"输入的字符串格式有误"的解决方法 今天在做项目时,碰到一个很奇怪的问题,我使用string.Format居然报“输入的字符串格式有误”的错误,我 ...
- 20150912华为机考1之"输入一个字符串,将其中出现次数最多的字符输出"
不吐槽华为的服务器了,直接上正文 输入:字符串(英文字母),长度不超过128 输出:出现频率最高的字母 思路写在注释文档 /* Input a string * Output the most fre ...
随机推荐
- [POI2007]MEG-Megalopolis (树状数组,Dfs序)
题目描述 Solution 这道题考试的时候竟然没有仔细想,结果只拿了暴力分... 其实就是一个 DFS序+树状数组. 我们先把用 DFS 把它变成一个序列,同时记录它们的 \(siz\). 那么我们 ...
- linux下安装firefox
首先检查系统有没有安装:rpm -qa|grep firefox 如果有安装,先删掉rpm -e * firefox不同版本下载:http://liulanmi.com/firefox 具体方法如下: ...
- net5:自定义验证控件服务器端验证与客户端验证的使用
原文发布时间为:2008-07-29 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...
- 获取本机外网IP的工具类
ExternalIpAddressFetcher.java package com.tyust.common; import java.io.IOException; import java.io.I ...
- 标准C程序设计七---62
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- 不需 porting 就可充電的 charger ic。
Origin : 今天同事問我一個關於配有 RT9458 charger ic 的手機的問題, 這手機可能要送到廠商那, 需要 porting charger ic, 看了一下,跟他說這個充電部份不需 ...
- ZOJ 2619: Generator
类型:概率 + 解方程组(高斯消元法) + KMP(好吧其实我用的是暴力~)题意:你可以等概率的选择大写字母里的前n个字母,在纸上写啊写,一直到出现给定的字符串.问写的字母个数的期望.思路: 期望递推 ...
- js-点击按钮页面滚动到顶部,底部,指定位置
之所以笔记一下这个,因为我在项目中经常用到. $('.scroll_top').click(function(){$('html,body').animate({scrollTop: '0px'}, ...
- rsync数据同步工具应用指南
Rsync (Remote synchonization) rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输.rsync中一项与其他大部分类 ...
- 洛谷—— P2117 小Z的矩阵
https://www.luogu.org/problemnew/show/2117 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1 ...