c++中cin,cin.getline()中换行符问题

问题描述

c++中cin,cin.getline()中换行符问题

代码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会出现问题?

解决方案

原因很简单,因为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;
}

解决方案二:

你可以试一下,cin对换行符,t,空白符是忽略的,所以在第一种情况下,在cin第二个数组的时候,你先随便输入换行,他是忽略的,直到你第一个不是上面那3个的时候,才会正确读入,我猜是istream的库里应该是输入的时候有判断吧,
而,调用getline的时候估计绕过了那个判断,直接输入了,

时间: 2024-07-28 19:25:08

c++中cin,cin.getline()中换行符问题的相关文章

请问在XML中是如何来存储换行符的?

xml <br> 或者 chr(10)&chr(13)都不可取因为xml会把<br>认为是一个节点我看了csdn.net的xml其中并没有什么换行符号请教应该如何解决?  回复人: yeefly(Web开发版) ( ) 信誉:101  2002-12-26 17:52:24Z  得分:0    ? 或者说 怎么来用xsl实现换行我用<xsl:value-of select="main/content" />不会换行啊关注!! Top   回复

文本域中换行符的替换示例

 这篇文章主要介绍了文本域中换行符的替换,需要的朋友可以参考下 说明:代码在实际项目中测试通过,我已经省去些不重要的,大家可以重点看颜色标记的部分    前戏:    问:为什么做这个呢??    答:项目中有个将录入的文本域文字保存到数据库中.'查看时'从数据库获取相应数据,显示在文本域中.开发期间发现换行符使用jquery 的val() 还是text()获取后不做处理,保存数据库中没有换行了,自然取出来显示也就没有换行符了!由此写了下面的文章----有点啰嗦啊!  代码如下: <%@ pag

文本域中换行符的替换示例_jquery

说明:代码在实际项目中测试通过,我已经省去些不重要的,大家可以重点看颜色标记的部分 前戏: 问:为什么做这个呢?? 答:项目中有个将录入的文本域文字保存到数据库中.'查看时'从数据库获取相应数据,显示在文本域中.开发期间发现换行符使用jquery 的val() 还是text()获取后不做处理,保存数据库中没有换行了,自然取出来显示也就没有换行符了!由此写了下面的文章----有点啰嗦啊! 复制代码 代码如下: <%@ page contentType="text/html;charset=U

php表单转换textarea换行符的方法_php技巧

下面是我对这个问题的解决过程,最后算是完全搞懂了,真是阴沟里险些翻船 1.必须知道textarea中的换行符是 \n  (个人检测发现按回车键是\n,好像在linux下是\r\n) 2.用nl2br之前,请仔细看好手册解释,我就是搞郁闷了,一般都理解为将\n转换成<br >,其实不是的: 看php手册解释: nl2br –  Inserts HTML line breaks before all newlines in a string Returns string with '<br

php表单转换textarea换行符的方法

今天在项目中遇到一个textarea换行的问题,调试了半天都没有解决.要将textarea里的回车换行转换成br存入数据库. 下面是我对这个问题的解决过程,最后算是完全搞懂了,真是阴沟里险些翻船 1.必须知道textarea中的换行符是 n (个人检测发现按回车键是n,好像在linux下是rn) 2.用nl2br之前,请仔细看好手册解释,我就是搞郁闷了,一般都理解为将n转换成<br >,其实不是的: 看php手册解释: nl2br – Inserts HTML line breaks befo

c++中while(cin&amp;amp;gt;&amp;amp;gt;x)的问题

问题描述 c++中while(cin>>x)的问题 double x; while(cin>>x) {...} 为什么当输入x的值为0时,while条件依然为真?当输入什么时才能跳出while循环 我只有在输入英文时才跳出循环 换行空格之类都没用是怎么回事? 解决方案 输入数据有误,或者读取内容完结时才结束循环 解决方案二: 一个关于while(cin>>a)的一个不得不注意的问题 前几天写了一段代码大概意图是这样,要求输入三组数字到vector A ,vector B

SQL中的换行符

问题: SQL中的换行符(line feed character)是什么?它的ASCII值是什么? 专家回答: SQL本身并不使用换行符,因为换行符就跟空格符和回车符一样都被看作是 "空白".SQL把所有连续的"空白"符当作一个单个的空 格. 因此,下面这个查询语句-- select foo from bar where fap = 'qux' 跟如下这个查询语句意思是一样的-- selectfoofrombarwherefap='qux' 但是,前者的书写格式(多

微信公众帐号开发教程(七) 文本消息中换行符的使用

本篇文章主要介绍在文本消息中使用换行符的好处以及如何使用换行符. 最近一个月虽然抽不出时 间写博客,但却一直在认真答复大家提出的问题.收到这么多的回复.关注和答谢,还是蛮有成就感的,让我 觉得做这件事越来越有意义,更加坚定了我继续写下去的决心.经过前面六篇文章的讲解,相信在看文章的你 ,已经掌握了微信公众帐号的基础开发知识(基于Java),如框架搭建.API封装.消息接收与回复等:接下 来的系列文章将专注于讲解公众帐号开发中的技巧及实用功能的开发(如天气查询.周边搜索.人机对话等) . 使用换行

怎样去掉Word文档中的手动换行符

  怎样去掉Word文档中的手动换行符          (1)单击"编辑"菜单中的"替换"; (2)在"替换"对话框上,单击"高级"按钮; (3)将光标移至"查找内容"框中,单击"特殊字符"按钮后,单击"手动换行符"(^l); (4)将光标移至"替换为"框中,单击"特殊字符"按钮后,单击"段落标记"(^p)