问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++中使用getline读文件的问题11

发布网友 发布时间:2023-10-22 18:16

我来回答

5个回答

热心网友 时间:2024-10-20 11:30

注意,getline函数是以回车作为结束符的,但它不会虑掉回车符。在第一个cin.getline(ch,5); 结束后有一个回车符保留在缓存中,当执行到第二个cin.getline(ch,5); 函数读取保留在缓存中的回车符,认为已经结束读取,所以之后输入的第二串五个字符并没有读入ch中,当然ch为空,可以用cin.get();解决这个问题;具体操作如下:
#include<iostream>
using namespace std;
int main()
{
char ch[20];
cout<<"enter a sentence:"<<endl;
cin.getline(ch,5);
cin.get();
cout<<"part 1:"<<ch<<endl;
cin.getline(ch,5);
cin.get();
cout<<"part 2:"<<ch<<endl;
return 0;
在cin.get(ch,5);后添加cin.get();就可以读取多余的回车符那么
下面的cin.getline(ch,5);就能正确读取

热心网友 时间:2024-10-20 11:31

我试了一下,应该是第一次输入小于4个的字符就好了
getline(char *ch,int n,char='\n')函数的意思是将输入n个字符赋给指针ch,当未输入n个字符而有回车的时候也结束输入。
当你第一次输入4个字符并回车后,再继续执行下一个cin.getline(ch,5); 的时候,就将该回车读入到了ch里面并结束输入,结果就看似没等你第二次输入字符程序就结束运行了。
你可以尝试将下面的程序输入4个字符单步运行看看ch的值就可以明白了
#include<iostream.h>
#include <stdio.h>
int main()
{
char ch[20];
cout<<"enter a sentence:"<<endl;
cin.getline(ch,5,'\n');
cout<<"part 1:"<<ch<<endl;
ch[0]='a';
cin.getline(ch,5,'\n');
cout<<"part 2:"<<ch<<endl;
return 0;
}

热心网友 时间:2024-10-20 11:31

因为getline有三个参数,第三个参数是字符串的结束符,也就是当getline遇到这个结束符时,就不在接受输入了,比如写成 getline(cin,st,'s'); 即使输入的是abcsabc 那么也只会显示 abc ,因此对于上面出现的情况,getline默认情况下以回车('\n')作为结束符,第一次按回车表示字符串结束,第二次按回车才开始输出。
你可以通过多读一次char的方法放掉这个回车符。这个在C++编程思想里有很详细的解释,你可以找来看看的。
120321077

热心网友 时间:2024-10-20 11:32

因为你输入完整个句子后才执行第一个cin.getline(ch,5);
当执行完cout<<"part 1:"<<ch<<endl;后第二个cin.getline(ch,5);
还要等待输入 这么做就需要两次输入了吧

热心网友 时间:2024-10-20 11:33

一次输入小于等于4个字符就好了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
魔兽世界80牧师治疗天赋 魔兽世界80级牧师加血还强大么? 上海自驾游最全攻略,短途无比惊艳的自驾游 请问去新疆旅游,什么季节最合适? 不正创是什么意思? 知识产权侵权责任承担形式有哪些 完全产权是什么意思? 产权错位是什么意思? 抖音通知设置为什么没有全部? 巴黎欧莱雅男士劲能醒肤露如何通过创新成分提升皮肤防护和活力? 新买的海信全自动洗衣机进水阀不进水为什么?9 C++读取文件getline 如何用getline整行读取t...17 c++中,运行getline()函数时,如何指定文件指针的位...4 各种修辞手法的表达效果1620 运用修辞手法的段落333 什么叫修辞手法1937 “有的...有的...”是什么修辞手法?288 面试的时候,面试官提问“你一生中做出最错误的决定是什么?”10 应聘时当面试官最后问你还有什么问题时,一般情况都应该问些什么...579 怎样写一章根据自己所从事的工作岗位,简单描述有何感想?对今后...24 面试时,面试官常问的问题有哪些?8804 一年改2次的办法 领导提拔我一个新岗位,但是本人完全不能胜任,该怎么办?怎么跟...236 面试过程中,考官问自己承担过最大的责任是什么? 描述本人竞聘岗位的优势,包括但不限于个人特点、经历、管理经验...71 怎么写岗位描述?88 现在跟单员和报关员,哪个更好找工作、哪个工资更高、哪个工作更稳定?跟 ... 小孩上一年级拼音学不会怎么办 “有朝一日龙得水”下句是什么?35 权健自然医学我想加入不知道怎么样,有人做的很不错,但是我也想...4 洗衣机倒进水,脱水管怎么老往出流水? C++文件指针怎样跳过一行数据1 中国农业银行电汇的流程哪位好心人知道说下,谢谢了,收款人是否...2 C++: getline() 如何控制每次读入txt文件数据...1 在C++的文件读写中,怎么直接从“下一行”开始读取数据?9 江苏,常州市武进区,南夏墅工伤伤残鉴定在哪个劳动局,电话多少...3 需要过程,谢谢好心人。 天津南开区的农业银行存款机哪里有 我要南开区的 知道的好心人... 农行笔试的通过率怎么样?什么时候能查到是否进入面试啊?求好心... 芝罘区南大街中心广场东边的农业银行是支行还是分行?请求好心人... 怎样用一个手机号注册两个? 五金排名前十的品牌 上海松江区佘山镇哪些公司要十七岁的女孩子 求全球十大最值钱的俱乐部12 书香门第!猜一生肖!53 欲钱买书香门第,猜一生肖124 世界足坛哪只球队最有钱5 书香门第打一肖12 欲钱看书香门第是什么生肖89 十二生肖欲钱买看书香门第的动物什么生肖是80