在写代码的过程中,经常要一行一行的读入字符串进行处理,这里我总结了一些方法,供大家参考。

方法一: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++如何整行读入字符串?相关推荐

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

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

  2. 整行读入,空格分割;数字与字符串混合读入;String转int

    题目内容: dyt喜欢对lrh说的话说反话,现给出lrh说的k句话,输出dyt所说的反话. 输入格式 第一行是样例个数k(k<10) 接下来k行,每行包含lrh说的一句话(每句话长度不超过50, ...

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

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

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

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

  5. php分割文本读入数组,PHP fgets按行读取字符串和explode分割字符串为数组

    PHP fgets按行读取字符串和explode分割字符串为数组 file.txt 类型|所在目录|文件|大小|创建时间 File|C:\Program Files\Java\jre7\lib\zi\ ...

  6. python 整行_python dataframe 输出结果整行显示的方法

    python dataframe 输出结果整行显示的方法 在使用dataframe时遇到datafram在列太多的情况下总是自动换行显示的情况,导致数据阅读困难,效果如下: # -*- coding: ...

  7. linux sed 选取,linux sed 替换(整行替换,部分替换)、删除delete、新增add、选取...

    sed命令行格式为: sed [-nefri] 'command' 输入文本 常用选项: -n∶使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上 ...

  8. Excel·VBA指定条件删除整行整列

    目录 1,删除工作表所有空行 2,删除工作表所有空列 3,删除选中单列包含指定字符的行 举例 3.1,改进版 4,删除选中单列不含指定字符的行 举例 5,删除选中列重复的整行 举例 6,删除选中列唯一 ...

  9. C++ fscanf 读取一整行

    转自:https://www.cnblogs.com/luyi07/p/9527692.html scanf, fscanf很相似,都是从流中读取输入,然后赋值给变量 int scanf(const ...

最新文章

  1. Type EnumTypeInfo<xxxxx> cannot be used as key. Contained UNSUPPORTED key types: EnumTypeInfo<xxxxx>
  2. 系统服务管理与控制程序(Init System/初始化系统)-- Systemd 的 Unit 配置文件详解
  3. 三台服务器无需密码相互访问
  4. 前端常用素材网站整理
  5. 国内pt站点都有什么资源,哪些值得pter入手?
  6. 中国城市乞丐的五大经典表情
  7. VMware虚拟机net模式无法共享主机ip
  8. JAVA实现经典游戏俄罗斯方块
  9. 端电压,相电压,线电压区别
  10. 简单粗暴识别工作室Android识别模拟器
  11. 图中的搜索——dij
  12. 《合成孔径雷达成像——算法与实现》之【1】仿真图2.2
  13. Javascript 执行上下文(ES3)
  14. ML:阿里云计算平台之搜索推荐演讲分享《多场景智能推荐助力业务增长》、《阿里云智能推荐应用实践:PAI-EasyRec Framework》、《新一代数仓架构漫谈》
  15. 清十二帝疑案(阎崇年)37集全集 百家讲坛 DVD高清晰版
  16. Oracle 的表以及表基本操作
  17. Python【每日一问】23
  18. 2016年(第15届)中国软件业务收入前百家企业名单(zz)
  19. 1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。
  20. 计算机java是什么意思

热门文章

  1. python画图代码turtle-介绍下Python里自带的一个有趣画图模块库:Turtle库
  2. python好学嘛-马哥教育官网-专业Linux培训班,Python培训机构
  3. python能在excel运行吗-用ExcelPython在Excel中调用Python
  4. python基础知识资料-Python基础知识梳理 - 第02部分
  5. python语言特点有哪些-Python是什么?Python有什么特点?
  6. python太慢了-python 读取大文件越来越慢
  7. 如何查看python是多少位的-请问一下该怎么查看python是32位还是64位?
  8. 下列不属于python第三方库的是-python后端开发工程师考证试题
  9. r语言和python-Python和R语言的区别_Python与R的区别和联系
  10. python软件下载手机版-Learn Python中文版app