代码1、 int a;
cin>>a;
char b[10];
cin>>b;
代码2、 int a;
cin>>a;
char b[10];
cin.getline(b,10);
我看书上说cin 见到换行符结束然后换行符留在了输入序列中,那为什么为什么代码1不会出现问题,而代码2会出现问题?
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已采纳
c++中cin,cin.getline()中换行符问题
收起
- 写回答
- 好问题 1 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
爬金字塔的人 2014-05-05 09:11关注原因很简单,因为cin自动把enter忽略了,而cin.getline不行,因为默认是遇到'\n'就结束读入,您可以尝试这样:
void main()
{
int a ;
(cin >> a).get();//把遗留下来的'/n'去掉。
char b[10];
cin.getline(b,10);
cout << a << endl
<< b << endl;
}本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2021-06-28 03:24回答 2 已采纳 cin.get(ch) 读取一个字符ch cin.get(str,10) 同下 cin.getline(str,10) 读取一行字符到str,最多9个字符,最后一个是'\0'。 cin &g
- 2017-02-07 05:08回答 3 已采纳 cin >> ratings[i]; 这句代码让你输入后,你会敲一个回车表示输入完毕。此时在输入流中会有一个换行符,而cin.get()就是用来读取这个换行符的。 如果你只注释掉循环
- 2020-03-01 06:56回答 2 已采纳 实际上是运行了三次,只是getline这个函数的问题,getline函数在输入流中遇到文件结束符(EOF)或者在读入字符的过程中遇到错误都会结束,你这里指定读8位,但实际输入了11位,第一次能读成功但
- 2023-10-19 14:55wang_nn的博客 在 ACM 模式的题目编程中,我们需要自己解决程序的输入与输出问题。我们自己解决程序的输入其实就是从键盘输入数据,然后将输入的数据传递我们定义的变量。本主要介绍cin、cin.get()、cin.getline() 以及 getline() ...
- 2017-07-03 18:37回答 1 已采纳 http://blog.csdn.net/iamiman/article/details/53468250
- 2023-02-11 03:23回答 2 已采纳 该回答引用ChatGPT如果使用 cin.getline 输入字符串,需要确定字符串的最大长度,以保证内存的有效性。该回答引用ChatGPT在上面的代码中,程序只读入了一个字符(因为字符串的最大长度定
- 2019-03-02 16:25回答 1 已采纳 不带参数的get,返回值是int,返回单个的字符的ascii 带参数的get,返回的是流 address是字符串,用 getline 装入字符数组缓冲区
- 2021-12-02 09:35佬酒的博客 cin.getline() 接收一个字符串,可以接收空格并输出 cin.get() 接收一个字符串,结束符默认为回车键 getlin() 接收一个字符串,可以接收空格并输出,需包含“#include” 1、cin>> cin是将标准输入流...
- 2018-08-04 19:36回答 2 已采纳 你的第一个问题和缓冲区有关,第二个问题我不清楚 首先,按你的代码看,id数组第一项是空的: 或者get()取走
- 2018-08-19 20:30回答 7 已采纳 int main() { int n; cin >> n; string temp; for (int i = 0; i> a[i].id
- 2024-07-28 03:52你好,此用户已存在的博客 从标准输入读取单个或者是多个变量(以空格、制表符、换行符隔开),尤其是整型变量,或者从多行读取整型变量到数组,使用 cin。从标准输入读取单个字符,推荐使用输入流中的 cin.get()。从标准输入读取单行字符串、...
- 2024-12-09 08:46进击的编程浪人的博客 综上所述,确实读取从缓冲区开始到遇到换行符前的所有内容,并且会丢弃换行符。它是一种方便的方式来读取一行字符串输入,非常适用于需要读取文本行的场景。
- 2020-08-24 17:09上面的语句将读取一行输入,直到读取到换行符或 EOF 为止,然后将输入的字符串存储在 string 对象 line 中。 三、实例代码 下面是一个使用 cin.getline 和 getline() 函数的实例代码: ```cpp #include #include...
- 2023-04-01 14:13「已注销」的博客 cin与cin.getline和cin.get的整理
- 2022-08-10 09:05莫名的情绪焦躁的博客 C++中cin、cin.get()、cin.getline()、getline()函数的用法
- 2021-07-10 07:17初学者清水的博客 1.cin>> 1.1cin>>用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream> using namespace std; main () { int a,b; cin>>a>>b; cout<<a+b<<endl; } ...
- 2018-05-14 07:51啊大1号的博客 测试平台g++ 5.4.0和VS2015社区版。...正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。 比如下面的例子: voidtest_i...
- 2018-08-29 02:40自律&&自由的博客 cin.getline()函数是处理数组字符串的,其原型为cin.getline(char * , int),第一个参数为一个char指针...可以看到cin不会丢弃换行符,它会把换行符留在输入队列中,所以getline遇到的换行符,把换行符替换成'\0'所...
- 2018-08-29 11:09Leonardo Liu的博客 在学习C++时,经常会遇到一个问题,就是需要混合使用cin>>, cin.getline(), getline()时,有时会碰到不等你输入,就直接运行下一行的情况,如下面代码所示: // test.cpp: 定义控制台应用程序的入口...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司