C/C++如何读取整行字符串
原文地址:
https://www.cnblogs.com/AlvinZH/p/6798023.html
C/C++如何整行读入字符串?
阅读目录
- 方法一:scanf()读入char[]
- 方法二:getchar()读入char[]
- 方法三:gets()读入char[]
- 方法四:getline()读入string或char[]
- 方法五:get()读入char[]
在写代码的过程中,经常要一行一行的读入字符串进行处理,这里我总结了一些方法,供大家参考。
回到顶部
方法一:scanf()读入char[]
使用方法:
char str[1024];
scanf("%[^\n]",&str); 建议这边在加上一个%c 否则会出现 只读取一行就结束的状况
getchar();
说明:在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串。
其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。注意此时读入的字符串是可以含有空格的,而且会把开头的空格也读进来。
注意:如果要循环的多次从屏幕上读取一行的话,就要在读取一行后,在用%c读取一个字符,将输入缓冲区中的换行符给读出来。否则的话,在下一次读取一行的时候,第一个就遇到'\n',匹配不成功就直接返回了。这里可以用scanf()或者getchar()函数读取换行符。
回到顶部
方法二:getchar()读入char[]
使用方法:
char str[1024];
int i=0;
while((str[i]=getchar())!='\n')i++;
getchar();
说明:这样一个一个读也可以,也会把开头的空格读进来。最后也需要考虑换行符,使用getchar()读出来。
回到顶部
方法三:gets()读入char[]
使用方法:
char str[1024];
gets(str);
说明:感觉这个就是多个getchar的集合函数,很好用。功能是从标准输入键盘上读入一个完整的行(从标准输入读,一直读到遇到换行符),把读到的内容存入括号中指定的字符数组里,并用空字符'\0'取代行尾的换行符'\n'。读入时不需要考虑换行符。
回到顶部
方法四:getline()读入string或char[]
使用方法:
string str;
getline(cin,str);//读入stringchar str2[1024];
cin.getline(str2,1024);//读入char数组
说明:这是比较常用的方法,cin.getline第三个参数表示间隔符,默认为换行符'\n'。读入不需要考虑最后的换行符。
回到顶部
方法五:get()读入char[]
使用方法:
char str3[1024];
cin.get(str3,1024);//读入char数组
说明:get函数读入时需要考虑最后的换行符,也就是说,如果用get读入多行数据,要把'\n'另外读出来,一般使用cin.get(str,1024).get();来读入多组数据。
作者: AlvinZH
出处: http://www.cnblogs.com/AlvinZH/
本人Github:https://github.com/Pacsiy/JobDu
C/C++如何读取整行字符串相关推荐
- 字符缓冲输入流,高效读取整行数据
import java.io.BufferedReader; import java.io.FileReader;/* 字符缓冲输入流,高效读取整行数据*/ public class Writer { ...
- java 读取文本 读取每行字符串
java 读取文本 读取每行字符串 开发中难免遇到一些需要临时处理的问题, 比如产品经理给到你一个TXT文件,帮我把这个数据 怎么怎么样...很急 现在就要 当然这种事情也是见怪不怪 读取文件的代码其 ...
- [C++]-C++基本输入及读取整行
文章目录 标准输入流 cin`>>` cn.get 整行读取 std::getline cin.getline cin.get C++标准库提供了一组丰富的输入/输出功能.C++的I/O发 ...
- C++读取一整行字符串以及其他函数
其他类似函数看这个博客,下面的是读取一行的三个函数 字符数组char[] cin.getline(str, len) 丢弃换行符 char str[30];cin.get(str, 30); cin. ...
- 【批处理DOS-CMD命令-汇总和小结】-显示文本文件内容(type),对文本文件的整行字符串进行排序(sort)
一.读取文本文件--type 先看一下type的帮助信息. 由此可见,type的作用就是来读取文件的内容的,内容可以参考"以记事本方式"打开的情况,如果是txt.md.bat这种纯 ...
- C/C++如何整行读入字符串?
在写代码的过程中,经常要一行一行的读入字符串进行处理,这里我总结了一些方法,供大家参考. 方法一:scanf()读入char[] 使用方法: char str[1024]; scanf("% ...
- C++ 读入整行带空格的字符串,并将字符串按照特定符号划分成多个子串
在处理输入的时候,有时需要输入一整行字符串,而字符串中包含类似空格,tab这样的特殊符号,直接用cin读入时不能得到预期效果,这里介绍一下C++中的整行字符串读入方法. istream& ge ...
- c语言fscanf读入字符串,fscanf读取多行 怎么用fscanf读入文件下一行
python+django MTV框架 和php MVC框架的不同之处后来当朋友再问起小编你还那么喜欢他吗,小编终于可以低头微笑摇着头说不了.您教导小编们不要说废话,可在小编眼里您说的全是废话! py ...
- C语言 输入是一整行的字符串
输入是一整行的字符串的 C语法: char buf[20]; gets(buf); C++语法: 如果用string buf;来保存: getline( cin , buf ); 如果用char bu ...
- python创建一个文本文件、包含10行字符串、每行字符串由_Python2:使用正则表达式从文本文件中提取整行,子字符串来自anoth...
我有个问题.我在Linux系统上使用python2.7.6.在 我要实现的是使用列表中的特定数字,它对应于database文本文件中的最后一个数字,将database文本文件中的整行拉出并打印出来(稍 ...
最新文章
- error40无法打开到sql_SQL入门学习,初步认识ADO
- pull to load more data
- oracle查询重复数据出现次数
- 清晰版 构建最高可用oracle数据库系统.pdf,构建最高可用Oracle数据库系统
- 2020蓝桥杯省赛---java---B---6(分类计数)
- php7 提示500错误解决,升级php7出现500错误怎么办
- C#核心概念--装箱和拆箱(什么是装箱和拆箱)
- 回溯法 —— 判断子集和问题是否存在解
- web安全day31:人人都要懂的LAMP--apache服务安防配置
- [转]ArcGIS.Server.9.3和ArcGIS API for Flex实现GraphicsLayer上画点、线、面(五)
- 方舟服务器修改错误,求解,方舟正在进服务器出现错误
- 南京邮电大学计算机专业学费多少,南京邮电大学学费多少
- C++入门教程(一)
- 音频/面板资源管理器_AudioPanelManager
- 浅谈5G网络及其应用
- python编程入门书-最适合Python初学者的6本书籍推荐「必须收藏」
- 左室短轴切面_一文读懂心脏超声基本切面
- 56282-36-1,Thiol-PEG3-alcohol巯基与马来酰亚胺、OPSS、乙烯砜和过渡金属表面反应
- 8.5.4. Interval Input
- .NET网站发布常见问题解决方案