C++输入一行字符串的一点小结


原文链接:

http://www.wutianqi.com/?p=1181


大家在学习C++编程时。一般在输入方面都是使用的cin.

而cin是使用空白(空格,制表符和换行符)来定字符串的界的。

这就导致了对于带有空格的字符串。比方”I Love C++奋斗乐园论坛”

仅仅能读入”I”,后面的都无法读入。

这时怎么办?

 一.对于字符数组

方法一:getline()

读入整行数据,它使用回车键输入的换行符来确定输入结尾。

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

第一个參数str是用来存储输入行的数组名称。第二个參数len是要读取的字符数。

 1 #include <iostream>

 2 using namespace std;

 3  

 4 int main()

 5 {

];

);

 8     cout << str << endl;

;

 }

方法二:get()

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

 1 #include <iostream>

 2 using namespace std;

 3  

 4 int main()

 5 {

];

);

 8     cout << str << endl;

;

 }

那么两者有何差别?

两者都读取一行输入。直至换行符。

然后,getline将丢弃换行符。而get()将换行符保留在输入序列里

所以,再使用cin.get()输入多行数据时,中间能够使用get()消除换行符。

 1 #include <iostream>

 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的类成员。所以能够合并起来写:

 1 #include <iostream>

 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不是类方法。

 1 #include <iostream>

 2 #include <string>

 3 using namespace std;

 4  

 5 int main()

 6 {

 7     string str;

 8     getline(cin, str);

 9     cout << str << endl;

     ;

 }

C++输入一行字符串的一点小结的更多相关文章

  1. 转:C++输入一行字符串的一点小结

    原文链接: http://www.wutianqi.com/?p=1181 大家在学习C++编程时,一般在输入方面都是使用的cin.而cin是使用空白(空格,制表符和换行符)来定字符串的界的.这就导致 ...

  2. 使用getline输入一行字符串

    给定10个国家名,按字母顺序输出,国家名中可以包含空格,国家名用换行隔开 #include<algorithm> #include<iostream> #include< ...

  3. c++ 输入一行字符串

    ]; //cin>>str1; 方式1 不能统计(录入)空格后的字符 cin.); //方式2 能统计空格后输入的字符 按回车键输入结束 get()会将换行符保存在序列里 //gets(s ...

  4. 【Python】利用递归函数调用方式,将所输入的字符串,以相反的顺序显示出来

    源代码: """ 利用递归函数调用方式,将所输入的字符串,以相反的顺序显示出来 string_reverse_output():反向输出字符串的自定义函数 pending ...

  5. python输入一行字符,判断不同字符数量

    输入一行字符,判断不同字符的数量, 分别用for循环和while循环完成 for循环 运用了字符串方法, isupper()判断是否为大写字母 islower()判断是否为小写字母 isdigit() ...

  6. 汇编语言从键盘输入一个字符串(串长不大于80)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z)

    (1)从键盘输入一个字符串(串长不大于80). (2)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z). (3)输出原字符串且令非字母字符闪烁显示. (4)找出字符串中ASCI ...

  7. python基础练习题(题目 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数)

    day10 --------------------------------------------------------------- 实例017:字符串构成 题目 输入一行字符,分别统计出其中英 ...

  8. string.Format出现异常"输入的字符串格式有误"的解决方法

    string.Format出现异常"输入的字符串格式有误"的解决方法 今天在做项目时,碰到一个很奇怪的问题,我使用string.Format居然报“输入的字符串格式有误”的错误,我 ...

  9. 20150912华为机考1之"输入一个字符串,将其中出现次数最多的字符输出"

    不吐槽华为的服务器了,直接上正文 输入:字符串(英文字母),长度不超过128 输出:出现频率最高的字母 思路写在注释文档 /* Input a string * Output the most fre ...

随机推荐

  1. [POJ2417]Discrete Logging(指数级同余方程)

    Discrete Logging Given a prime P, 2 <= P < 2 31, an integer B, 2 <= B < P, and an intege ...

  2. linux环境内存分配原理 mallocinfo【转】

    转自:http://www.cnblogs.com/dongzhiquan/p/5621906.html Linux的虚拟内存管理有几个关键概念: Linux 虚拟地址空间如何分布?malloc和fr ...

  3. 标准C程序设计七---43

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  4. Day 17 编码+文本编辑+函数

    知识点篇: #! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "DaChao" # Date: 2017/ ...

  5. LeetCode OJ——Plus One

    http://oj.leetcode.com/problems/plus-one/ 进位加法 #include <iostream> #include <vector> usi ...

  6. js、jq平时积累

    1.window.onbeforeunload   =   function(){$(window).scrollTop(0);}  //在即将离开当前页面(刷新或关闭)时执行 JavaScript ...

  7. 小程序-初次进入小程序的授权问题(授权更新后的完整步骤)button主动授权

    在此做个笔记 最开始小程序的开发时,信息授权的问题刚完善,后面腾讯就更新了新的授权方式,真心的感到心累. 后来的button,主动授权问题,时间一久就有些忘记了,最近在新开发一个小程序的拆红包活动,需 ...

  8. SPOJ 7001 VLATTICE【莫比乌斯反演】

    题目链接: http://www.spoj.com/problems/VLATTICE/ 题意: 1≤x,y,z≤n,问有多少对(x,y,z)使得gcd(x,y,z)=1 分析: 欧拉搞不了了,我们用 ...

  9. 洛谷—— P1577 切绳子

    https://www.luogu.org/problemnew/show/P1577 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长? ...

  10. 用LCT解一类动态图的问题

    很显然,学过了LCT,大家一定都会用LCT来维护动态树结构了 那么,遇到图问题的时候,是不是也能用lct来解决呢? 解决图问题的时候,我们必须要仍然维护一棵树的形态,否则,lct是做不动的 那么下面来 ...