当我们输入整数,按回车,实际上输入的是:整数和换行符号(\n)。cin把整数读进了,但是换行符号没有读,因此如果接下来输入字符串,即使用cin.getline,首先会读入\n。然后就直接结束了。

下面这个程序需要输入四个字符串并把它们打印出来,可以看到输入三条字符串之后就结束了。

#include<iostream>
#include<string>using namespace std;int main(){int num;string s, w;cin >> num;for (int ii = 0; ii<num; ++ii){getline(cin, s);cout << s << endl;}return 0;

解决方法:

在输入字符串之前先用cin.get()把之前的换行符吸收掉

#include<iostream>
#include<string>using namespace std;int main(){int num;string s, w;cin >> num;cin.get();for (int ii = 0; ii<num; ++ii){getline(cin, s);cout << s << endl;}return 0;
}

或者另一种方法,不用getline获取字符串,直接用cin>>string

#include<iostream>
#include<string>using namespace std;int main(){int num;string s, w;cin >> num;for (int ii = 0; ii<num; ++ii){cin>>s;cout << s << endl;}return 0;
}

这是因为cin>>会自动过滤掉不可见字符(如空格 回车 tab等)

当cin>>从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin>>会将其忽略并清除,继续读取下一个字符,若缓冲区为空,则继续等待。但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin>>不做处理。

C++输入一个整数后接着输入字符串相关推荐

  1. C语言练习题,编写程序实现以下功能。从键盘输入一个整数,若输入数字0,则屏幕显示:“Sunday“;若输入数字1,则屏幕显示:“Monday“;若输入数字2,则屏幕显示:“Tuesday“;若输入数字

    编写程序实现以下功能.从键盘输入一个整数,若输入数字0,则屏幕显示:"Sunday":若输入数字1,则屏幕显示:"Monday":若输入数字2,则屏幕显示:&q ...

  2. Python 输入一个整数,计算输入的各位数字的平方和

    任务:输入一个五位整数,编程计算各位数字的平方和. 要求: (1)如果输入的整数位数不够,需要提示用户,直到输入满足条件为止. (2)取整数各位数字,不能使用讲稿提供的处理方法. "&quo ...

  3. 偶数乘2奇数乘3C语言,输入一个整数x,如果为偶数乘2,否则乘3,然后输出.C语言

    编写一个程序,输入一个正整数,并做以下运算:如果为偶数,除以2,如果为奇数,乘3加1.得到的结果再按上 本人不会C#,算法相通,用c语言演示一下:#includevoidmain(void){intz ...

  4. 【C/C++】输入一个整数的二目运算式的字符串,如100+20,332-19,200*2333,44/33二目运算取”加减乘除“中的一种输出运算式的整数结果值

    输入一个整数的二目运算式的字符串,如100+20,332-19,200*2333,44/33 二目运算取"加减乘除"中的一种 输出运算式的整数结果值 输入:"%s&quo ...

  5. 键盘输入一个整数1~7代表今天周几,再输入间隔天数n,判断n天后是周几

    键盘输入一个整数1~7代表今天周几,再输入间隔天数n,判断n天后是周几 代码如下(示例): public static void main(String[] args) {java.util.Scan ...

  6. 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。

    输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分. 我们首先会想到常规方法:创建一个临时数组,遍历所给数组中的所有元素,将偶数 ...

  7. 输入一个以回车结束的字符串(少于80个字符),滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),输出该字符串并将其转换为十进制数后输出。

    [问题描述] 输入一个以回车结束的字符串(少于80个字符),滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),输出该字符串并将其转换为十进制数后输出. [输入形式]一个字符串,小于80个字 ...

  8. python实现 - 第一行包括一个整数N,接下来的N行里 每行包含一个特殊基因片段的编码;接 下来输入一个整数M,M行里每行有一 个字符串代表基因编码;

    文章目录 每日一练 - 1 一.题目 二.编程 三.结果 每日一练 - 1 一.题目   如果个人要想拥有超能力当且仅当他的基因编码里包含至少1个特殊基因片段作为子串.请编写程序帮助科学家筛选出真正具 ...

  9. python编写一个程序、输入一个数判断其是偶数还是奇数_编写程序,输入一个整数,判断后输出它是奇数还是偶数...

    编写程序:"输入一个整数,判断它是奇数还是偶数,是奇数输出JISHU,是偶数输出OUSHU"?(要求用函数调用) #includeusingnamespacestd;boolpan ...

最新文章

  1. 锦上添花DataGrid!
  2. 用 Flask 来写个轻博客 (7) — (M)VC_models 的关系(many to many)
  3. Redis数据持久化机制AOF原理分析一---转
  4. mysql8出现The MySQL server is running with the --skip-grant-tables option so it cannot execute
  5. ntfs安全权限和共享权限的区别
  6. Java String indexOf(int ch)方法与示例
  7. 远程下载马bypass waf
  8. 【马来西亚】娘惹的含义
  9. XP引导Ubuntu--Ubuntu手记之系统配置
  10. 设计模式---模板模式(C++实现)
  11. 工具:BT Sync 同步文件
  12. blender 简单的浮雕制作
  13. Git出现 Your local changes to the following files would be overwritten by merge: con
  14. 手机邮箱怎么弄_手机邮箱设置
  15. C语言:求不确定科目数的加权平均分
  16. 一周疫情对行业影响观察 | 中国资产或成避险资产;亚太旅游零售业呼吁政府财政支持...
  17. GEE报错Tile error: Error in map(ID=198102T01):Element.copyProperties: The source parameter is require
  18. 每日一题 - 剪绳子
  19. 第一行代码Android技巧1——知晓当前是在哪一个活动
  20. Vue:前端体系、前后端分离

热门文章

  1. php 正则 尖括号,php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串...
  2. centos mysql jar 驱动包_JDBC连接MySQL的数据库
  3. 机器学习从理论到工程的第二步-开发环境与工具篇(下)
  4. 一篇文章了解架构师能力模型
  5. 论文浅尝 | 改善多语言KGQA的 Zero-shot 跨语言转换
  6. 一文搞懂HMM(隐马尔可夫模型)-Viterbi algorithm
  7. Android官方开发文档Training系列课程中文版:后台服务之IntentService的创建
  8. Tomcat:部署成功后不能正常访问local:8080,服务已经启动。
  9. Github项目汇总
  10. 前端vue实现pdf文件的在线预览