c语言getline作用,C/C++中常用的getline函数
一直纠结怎么区分getline(), fgets(),gets()以及C语言中得getline()函数,今天稍微整理一下。
1.c++中得getline()函数:
这个使用的是string 的IO操作实现的。这个函数接受两个参数(也可以是3个参数,第三个参数是读取的分割符),一个是输入流对象,一个是string对象。
原型:
包含在头文件
istream& getline ( istream& is, string& str, char delim );
istream& getline ( istream& is, string& str );
如果getline函数有两个参数,那么默认的分隔符就是'\n'。
这个函数的的返回值是istream对象。判断返回值的时候,就是看流的状态是否正常。如果使用for/while循环等来编写代码的话,那么只要以getline函数作为检查循环是否继续的条件的话,那么只要流是正常的就可以无限循环,除非使用 ctrl + z,或者EOF回车终止读入(注意:直接键入回车换行符是不行的: 因为getline函数是读取到回车换行时,就会终止本次读取。如果第一个键入的字符就是回车换行,那么就会string对象就会被设置为空)。
如c++ primmer中得例子,程序不会跳出循环直到输入: ctrl + z/c 或者EOF回车。int main()
{
string line;
// read line at time until end-of-file
while (getline(cin, line))
cout <
return 0;
}
对于三个参数的原型,就不多说了,直接来个例子:int main()
{
string strLine = "";
int i = 0;
while (getline(cin , strLine, '@'))
{
cout <
}
return 0;
}
123
344
167#
@
the 0 line is : 123
344
167#
@
the 1 line is :
@@
the 2 line is :
the 3 line is :
Q
W
@
the 4 line is :
Q
W
2.C语言中得getline:
函数声明:
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
返回值
成功:返回读取的字节数。
失败:返回-1。
参数:
lineptr:指向存放该行字符的指针,如果是NULL,则有系统帮助malloc,需要在使用完成后free释放。
n:如果是由系统malloc的指针,请填0
stream:文件描述符
例子:#include
#include
int main()
{
FILE *MyFile = NULL;
char *cContent = NULL;
size_t iBufSize = 0;
ssize_t iCount = 0;
MyFile = fopen("./test.txt", "r");
if (MyFile == NULL)
{
printf("open file failed\n");
return -1;
}
while ((iCount = getline(&cContent, &iBufSize, MyFile)) != -1)
{
printf("length is :%zu\n", iCount);
printf("content is :%s\n", cContent);
}
if (cContent)
free(cContent);
return 0;
}
文本:
结果:
c语言getline作用,C/C++中常用的getline函数相关推荐
- c语言定义小数无穷小,OC中常用的数学函数以及浮点处理函数
在编程中我们总要进行一些数学运算以及数字处理,尤其是浮点数的运算和处理,这篇文章主要介绍C语言下的数学库.而其他语言中的数学库函数的定义以及最终实现也是通过对C数学库的调用来完成的,其内容大同小异,因 ...
- c语言insert作用,C++string中的insert()插入函数详解
下面通过代码给大家介绍c++ string insert() 函数,具体内容如下: basic_string& insert (size_type pos, const basic_stri ...
- c语言中常用的字符函数以及字符串函数
文章目录 前言 一.常用字符串函数 1.strlen() 2.strcpy() 3.strcat() 4.strcmp() 5.strstr() 6.memcpy() 6.memmove() 二.qs ...
- php的正则表达式函数,php中常用的正则表达式函数
php中常用的正则表达式函数 * preg_match() * preg_match_all() * preg_replace() * preg_filter() * preg_grep() * pr ...
- OpenGL中常用的 GLUT 函数
GLUT函数说明 一.初始化 void glutInit(int* argc,char** argv) 这个函数用来初始化GLUT库.对应 main 函数的形式应是: int main(int arg ...
- 字符串中常用的系统函数(strcat , strcmp , strcpy,strlen )
字符串中常用的系统函数 (strcat 连接, strcmp 比较, strcpy 拷贝,效果相当于赋值,strlen 求有效字符个数) 1.strcat 函数 strcat 函数即字符串连接函数,其 ...
- java数据类型的转换函数_JAVA中常用数据类型转换函数
JAVA中常用数据类型转换函数: string->byte Byte static byte parseByte(String s) byte->string Byte static St ...
- MySQL中常用日期时间函数及获得
MySQL中常用日期时间函数: 下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DA ...
- 数据分析中常用的 Excel 函数
这里就开门见山啦!其实大家在数据分析工作中常用的的函数都差不多,做个总结,希望对入门或者转行的小伙伴可以有所帮助. 数据分析中常用 excel 函数: 本篇文章主要给大家分享几常用的excel功能.建 ...
最新文章
- java多线程消息队列_java多线程消息队列的实现
- P1449 后缀表达式
- debian9升级安装到python3.6和pip3.6
- 华为手机微信网络连接到服务器失败怎么办,微信H5支付在华为手机里报错 网络环境未能通过安全验证,请稍后再试 怎么解决啊 试了好多方法也不行...
- UDP成为低延时流媒体关键 选SRT还是QUIC?
- mysql 统计 邮箱_mysql查询之 连续出现的数字,重复出现的邮箱,删除重复的电子邮箱...
- Redis之运维细节
- 宽字节与多字节之间的转换
- windows ping 间隔_对于常用的ping命令,这些小技巧你不一定知道
- 深度卷积神经网络的过程详解——综述
- 云上游戏数据分析实践
- SVN报错:can't open file db/txn-current-lock:permission denied 解决方法
- cf1292 C. Xenon's Attack on the Gangs
- 晶联讯JLX12864G-086-PC-3S LCD显示屏 C51驱动代码
- 腾讯2019技术岗笔试 小Q非常喜欢复读,有时候,小Q会得到某个字符串S。这时他会把s不断重复不断重复连成一个无限长的串。比如说,小Q现在得到一个串abc,他会直一复读, 那么形成的字符串就是:
- 数据库的连接 SQL Joins
- BAT后台开发 两年工作经历总结
- 脚本调度-sqoop导出分区表-判断分区目录是否存在
- wow工作室脚本_魔兽世界8.0工作室脚本采药大队重出江湖 整齐划一宛如赶尸队...
- 【u8+】调账提示:此分录已两清,不能删除或修改
热门文章
- ajax 实现总价刷新,jQuery实现购物车的总价计算和总价传值功能
- Win10如何显示文件后缀名?显示后缀名的简单方法
- 部署微信公众号项目的基本步骤
- IList(T) 方法
- 微信平台中嵌入课程直播的有效方法
- 苹果天气不显示_苹果自带闹钟这么神?用了5年iPhone才知道,懂的人绝不会卸载它...
- 线程池的线程复用原理
- scala反转字符串_Scala程序反转字符串
- 年产能扩大至1亿片!歌礼公布新冠口服药研发进度;上海首家康莱德酒店正式开业|美通社头条...
- C语言之数组的定义及其使用方法