关于C++里面getline的四个困惑的问题
来源:互联网 发布:网络平台可加盟 编辑:程序博客网 时间:2024/05/06 08:46
文件:C:\\Users\\Administrator\\Desktop\\sourcedata\\bj922690.08O
对文件的说明:每行80个字节
困惑1 and 困惑2
如下代码:
ifstream ifile("C:\\Users\\Administrator\\Desktop\\sourcedata\\bj922690.08O");
char buffer[75];
string data;
ifile.getline(buffer,81,'\n');
data=buffer;
cout<<data.length()<<endl;
输出结果为:80。
困惑1:buffer的空间为75,除去最后一个结尾符'\0',就是74,那么将它赋给data,data的length照理说也是74。
困惑2:buffer的空间设为75,很明显是空间是不够的,因为每行是80个字节,为什么不报错。
困惑三
将代码变化一下,改变buffer的空间。
ifstream ifile("C:\\Users\\Administrator\\Desktop\\sourcedata\\bj922690.08O");
char buffer[60];
string data;
ifile.getline(buffer,81,'\n');
data=buffer;
cout<<data.length()<<endl;
此时报错,如图:
困惑3:改为buffer[60]后为什么就报错?
困惑4
代码再变化一下,如下:
ifstream ifile("C:\\Users\\Administrator\\Desktop\\sourcedata\\bj922690.08O");
char buffer[81];
string data;
ifile.getline(buffer,79,'\n');
data=buffer;
cout<<data.length()<<endl;
输出结果:78。
困惑4:为什么输出结果会是78,,设定的读取宽度是79个字节,那么输出结果应该是79。
- 关于C++里面getline的四个困惑的问题
- 关于人生困惑的问题
- 关于C里面宏替换的问题
- 关于C里面宏替换的问题
- 关于C里面宏替换的问题
- 关于编程的四个问题
- 关于getline 什么时候截止的问题
- 关于getline输入的一个小问题
- 关于C++中getline引发的问题
- 关于java的几个困惑问题
- 关于java的几个困惑问题
- 关于java的几个困惑问题
- 关于java的几个困惑问题
- 关于人生困惑的62个问题
- 关于UITableView 中两个困惑的问题
- 关于一个指针问题的困惑
- 关于cin.getline()和getline()的探讨
- 关于cin.getline()和getline()的探讨
- 世说新语:什么是面向对象(之二 继承)
- 冒泡排序算法分析
- 关于java中初始化顺序的总结及其势力代码!希望高手们可以帮助补充
- VS2010和数据库的那些事儿(一)
- 浙商银行2011.11.26校园招聘会笔试题
- 关于C++里面getline的四个困惑的问题
- 从头学Android之Android的数据存储--SQLite
- 修改 QQ 聊天记录保存路径
- 网络分析优化图着色算法Vertex Coloring算法初探
- 利用C++的模板模拟.net的代理语法
- 中缀式转换为后缀式(逆波兰式)方法
- ssh web.xml beans.xml applicationContext.xml struts.xml
- Linux/Unix解压命令汇总
- 正则表达式