原文地址:

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++如何读取整行字符串相关推荐

  1. 字符缓冲输入流,高效读取整行数据

    import java.io.BufferedReader; import java.io.FileReader;/* 字符缓冲输入流,高效读取整行数据*/ public class Writer { ...

  2. java 读取文本 读取每行字符串

    java 读取文本 读取每行字符串 开发中难免遇到一些需要临时处理的问题, 比如产品经理给到你一个TXT文件,帮我把这个数据 怎么怎么样...很急 现在就要 当然这种事情也是见怪不怪 读取文件的代码其 ...

  3. [C++]-C++基本输入及读取整行

    文章目录 标准输入流 cin`>>` cn.get 整行读取 std::getline cin.getline cin.get C++标准库提供了一组丰富的输入/输出功能.C++的I/O发 ...

  4. C++读取一整行字符串以及其他函数

    其他类似函数看这个博客,下面的是读取一行的三个函数 字符数组char[] cin.getline(str, len) 丢弃换行符 char str[30];cin.get(str, 30); cin. ...

  5. 【批处理DOS-CMD命令-汇总和小结】-显示文本文件内容(type),对文本文件的整行字符串进行排序(sort)

    一.读取文本文件--type 先看一下type的帮助信息. 由此可见,type的作用就是来读取文件的内容的,内容可以参考"以记事本方式"打开的情况,如果是txt.md.bat这种纯 ...

  6. C/C++如何整行读入字符串?

    在写代码的过程中,经常要一行一行的读入字符串进行处理,这里我总结了一些方法,供大家参考. 方法一:scanf()读入char[] 使用方法: char str[1024]; scanf("% ...

  7. C++ 读入整行带空格的字符串,并将字符串按照特定符号划分成多个子串

    在处理输入的时候,有时需要输入一整行字符串,而字符串中包含类似空格,tab这样的特殊符号,直接用cin读入时不能得到预期效果,这里介绍一下C++中的整行字符串读入方法. istream& ge ...

  8. c语言fscanf读入字符串,fscanf读取多行 怎么用fscanf读入文件下一行

    python+django MTV框架 和php MVC框架的不同之处后来当朋友再问起小编你还那么喜欢他吗,小编终于可以低头微笑摇着头说不了.您教导小编们不要说废话,可在小编眼里您说的全是废话! py ...

  9. C语言 输入是一整行的字符串

    输入是一整行的字符串的 C语法: char buf[20]; gets(buf); C++语法: 如果用string buf;来保存: getline( cin , buf ); 如果用char bu ...

  10. python创建一个文本文件、包含10行字符串、每行字符串由_Python2:使用正则表达式从文本文件中提取整行,子字符串来自anoth...

    我有个问题.我在Linux系统上使用python2.7.6.在 我要实现的是使用列表中的特定数字,它对应于database文本文件中的最后一个数字,将database文本文件中的整行拉出并打印出来(稍 ...

最新文章

  1. error40无法打开到sql_SQL入门学习,初步认识ADO
  2. pull to load more data
  3. oracle查询重复数据出现次数
  4. 清晰版 构建最高可用oracle数据库系统.pdf,构建最高可用Oracle数据库系统
  5. 2020蓝桥杯省赛---java---B---6(分类计数)
  6. php7 提示500错误解决,升级php7出现500错误怎么办
  7. C#核心概念--装箱和拆箱(什么是装箱和拆箱)
  8. 回溯法 —— 判断子集和问题是否存在解
  9. web安全day31:人人都要懂的LAMP--apache服务安防配置
  10. [转]ArcGIS.Server.9.3和ArcGIS API for Flex实现GraphicsLayer上画点、线、面(五)
  11. 方舟服务器修改错误,求解,方舟正在进服务器出现错误
  12. 南京邮电大学计算机专业学费多少,南京邮电大学学费多少
  13. C++入门教程(一)
  14. 音频/面板资源管理器_AudioPanelManager
  15. 浅谈5G网络及其应用
  16. python编程入门书-最适合Python初学者的6本书籍推荐「必须收藏」
  17. 左室短轴切面_一文读懂心脏超声基本切面
  18. 56282-36-1,Thiol-PEG3-alcohol巯基与马来酰亚胺、OPSS、乙烯砜和过渡金属表面反应
  19. 8.5.4. Interval Input
  20. .NET网站发布常见问题解决方案

热门文章

  1. PHP中常用的定义数组的函数是,php中常用数组函数有哪些?
  2. 关于华为路由器下一跳的心得
  3. backbond Model实现
  4. SQL Server MYSQL 检查点的好处
  5. Nutch数据集的目录具体内容
  6. 自己动手实现SharePointList的分页展示
  7. java中构造方法的执行过程
  8. 学术检索产品比较分析
  9. java指定一个具体日期
  10. 你知道Object中有哪些方法及其作用吗?