C/C++如何整行读入字符串?
在写代码的过程中,经常要一行一行的读入字符串进行处理,这里我总结了一些方法,供大家参考。
方法一:scanf()读入char[]
使用方法:
char str[1024]; scanf("%[^\n]",&str); 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
本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
转载于:https://www.cnblogs.com/AlvinZH/p/6798023.html
C/C++如何整行读入字符串?相关推荐
- C语言 输入是一整行的字符串
输入是一整行的字符串的 C语法: char buf[20]; gets(buf); C++语法: 如果用string buf;来保存: getline( cin , buf ); 如果用char bu ...
- 整行读入,空格分割;数字与字符串混合读入;String转int
题目内容: dyt喜欢对lrh说的话说反话,现给出lrh说的k句话,输出dyt所说的反话. 输入格式 第一行是样例个数k(k<10) 接下来k行,每行包含lrh说的一句话(每句话长度不超过50, ...
- C++ 读入整行带空格的字符串,并将字符串按照特定符号划分成多个子串
在处理输入的时候,有时需要输入一整行字符串,而字符串中包含类似空格,tab这样的特殊符号,直接用cin读入时不能得到预期效果,这里介绍一下C++中的整行字符串读入方法. istream& ge ...
- python创建一个文本文件、包含10行字符串、每行字符串由_Python2:使用正则表达式从文本文件中提取整行,子字符串来自anoth...
我有个问题.我在Linux系统上使用python2.7.6.在 我要实现的是使用列表中的特定数字,它对应于database文本文件中的最后一个数字,将database文本文件中的整行拉出并打印出来(稍 ...
- php分割文本读入数组,PHP fgets按行读取字符串和explode分割字符串为数组
PHP fgets按行读取字符串和explode分割字符串为数组 file.txt 类型|所在目录|文件|大小|创建时间 File|C:\Program Files\Java\jre7\lib\zi\ ...
- python 整行_python dataframe 输出结果整行显示的方法
python dataframe 输出结果整行显示的方法 在使用dataframe时遇到datafram在列太多的情况下总是自动换行显示的情况,导致数据阅读困难,效果如下: # -*- coding: ...
- linux sed 选取,linux sed 替换(整行替换,部分替换)、删除delete、新增add、选取...
sed命令行格式为: sed [-nefri] 'command' 输入文本 常用选项: -n∶使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上 ...
- Excel·VBA指定条件删除整行整列
目录 1,删除工作表所有空行 2,删除工作表所有空列 3,删除选中单列包含指定字符的行 举例 3.1,改进版 4,删除选中单列不含指定字符的行 举例 5,删除选中列重复的整行 举例 6,删除选中列唯一 ...
- C++ fscanf 读取一整行
转自:https://www.cnblogs.com/luyi07/p/9527692.html scanf, fscanf很相似,都是从流中读取输入,然后赋值给变量 int scanf(const ...
最新文章
- Type EnumTypeInfo<xxxxx> cannot be used as key. Contained UNSUPPORTED key types: EnumTypeInfo<xxxxx>
- 系统服务管理与控制程序(Init System/初始化系统)-- Systemd 的 Unit 配置文件详解
- 三台服务器无需密码相互访问
- 前端常用素材网站整理
- 国内pt站点都有什么资源,哪些值得pter入手?
- 中国城市乞丐的五大经典表情
- VMware虚拟机net模式无法共享主机ip
- JAVA实现经典游戏俄罗斯方块
- 端电压,相电压,线电压区别
- 简单粗暴识别工作室Android识别模拟器
- 图中的搜索——dij
- 《合成孔径雷达成像——算法与实现》之【1】仿真图2.2
- Javascript 执行上下文(ES3)
- ML:阿里云计算平台之搜索推荐演讲分享《多场景智能推荐助力业务增长》、《阿里云智能推荐应用实践:PAI-EasyRec Framework》、《新一代数仓架构漫谈》
- 清十二帝疑案(阎崇年)37集全集 百家讲坛 DVD高清晰版
- Oracle 的表以及表基本操作
- Python【每日一问】23
- 2016年(第15届)中国软件业务收入前百家企业名单(zz)
- 1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。
- 计算机java是什么意思
热门文章
- python画图代码turtle-介绍下Python里自带的一个有趣画图模块库:Turtle库
- python好学嘛-马哥教育官网-专业Linux培训班,Python培训机构
- python能在excel运行吗-用ExcelPython在Excel中调用Python
- python基础知识资料-Python基础知识梳理 - 第02部分
- python语言特点有哪些-Python是什么?Python有什么特点?
- python太慢了-python 读取大文件越来越慢
- 如何查看python是多少位的-请问一下该怎么查看python是32位还是64位?
- 下列不属于python第三方库的是-python后端开发工程师考证试题
- r语言和python-Python和R语言的区别_Python与R的区别和联系
- python软件下载手机版-Learn Python中文版app