①回车与换行
在Windows中:
‘\r’ 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;’\n’ 换行,换到当前位置的下一行,而不会回到行首;

Unix系统里,每行结尾只有“<换行>”,即"\n";
Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;
Mac系统里,每行结尾是“<回车>”,即"\r";
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;
而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

在Windows中读取Windows文件,getchar和fgetc会把\r吃掉,只剩下\n,所以不处理的话跨平台时会出现许多错误

②字符读取
int getc(FILE* stream); 从流中读取一个字符,并以整型返回,当读取失败或读到文档末尾,
返回EOF,因为EOF是-1,-1没有对应的字符,所以返回值是整型而不是字符型
getc() 相当于 fgetc(stdin)

③字符串读取
char* fgets(char*, int, FILE*);
读取完整一行,char buf[maxn],最多能读取maxn-1个字符,末尾自动加上’\0’,不会出现越界情况
一旦读到回车符’\n’就会停止,并且把回车符作为最后一个有效字符读入,结尾添加’\0’
如果使用fgets() 读取文件的时候bufsize大于该行的字符总数加2(多出来的两个,一个保存文件本身的’\n’换行,
一个保存字符串本身的结束标识’\0’),文件并不会继续读下去,仅仅只是这一行读取完,随后指向文件的指针会自动偏移至下一行。
如果读到了maxn-1个字符,还没读到’\n’,那就不以’\n’+’\0’结尾,仅以’\0’结尾

gets()存在缓冲区溢出漏洞,在C11中已被删除,但仍可以使用,但要避免使用

回车 换行 字符串读取相关推荐

  1. python字符串换行的三种方式_Python:怎样拼装超长字符串和包含回车换行字符串...

    Python 中字符串可以使用单引号('--')或双引号("--")表示.反斜杠 \ 是转义字符.如果你不希望 \ 转义字符成特殊字符,可以在引号前添加 r 即可.如下所示: &q ...

  2. vba 读取linux换行符,【VBA研究】清除字符串中的回车换行符

    作者:iamlaosong 如题,实际应用中,客户输入的地址中含有回车换行,导致格式转换中出错,因此需要清除掉,方法有二: 1.替换,这个方法只能清除一个回车换行 '检测地址中是否有回车换行 addr ...

  3. linux c 写文件 换行符,[Linux文件]带回车换行的写入字符串实例

    [Linux文件]带回车换行的写入字符串实例 发布时间:2020-07-26 04:01:02 来源:51CTO 阅读:1802 作者:银河星君 //这是在上一个实例的基础上用strcat函数解决了回 ...

  4. Java 替换字符串中的回车换行符的方法

    使用正则表达式进行替换: 代码片段: String documentTxt = EntityUtils.toString(entity,"gbk");//获取数据  documen ...

  5. SQL:查询、替换字符串中的回车、换行、回车换行

    今天碰到一个问题,用字符串函数SUBSTRING截取字符串,给定的字符串数据中包含回车.换行.回车换行,导致截取失败.将字符串数据中的回车.换行.回车+换行处理之后就可以成功截取了. 1.判断字符串中 ...

  6. Lua操作字符串去除回车换行以及空格

    Lua操作字符串去除回车换行以及空格 前言 lua的数据结构中string和table用的非常多,基本只要写lua脚本都会大量使用,其重要性不言而喻,这里主要说一下string去除回车换行和空格的方法 ...

  7. html字符串自动加回车换行,【HTML】处理br换行符追加到前端换行无效的问题 --- html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决...

    需求如下图: 追加给前台后,效果如下: 可以在源码看到: 是将后台给出来的数据,直接当作字符串给填充在了前台HTML中. 而查看浏览器编译后的HTML源码可以发现: 原来字符串中的 的<> ...

  8. Java去除字符串中空格、制表符、回车换行的方法

    \t 是制表符 \r\n 回车换行  注意:\r,\n的顺序是不能够对换的,否则不能实现换行的效果. 操作系统的不同,换行符操也不同: \r: return 到当前行的最左边. \n: newline ...

  9. js字符串去掉前后空格回车换行

    问题: 需要规范用户在textarea框中输入的数据,需去掉字符串前后空格回车换行(字符串中间的不需要管) 解决: 直接使用trim()方法. var str= row.serviceNameModi ...

最新文章

  1. oracle惯用缩写的含义
  2. 成功解决Both binary classification-only and multiclassification-only loss function or metrics specified
  3. 库克的采访给我们带来的思考!
  4. The operation couldn’t be completed. (LaunchServicesError error 0.)
  5. android学习笔记46——File存储
  6. Java虚拟机结构分析
  7. PaperNotes(16)-图神经网络GNN简史、不动点建模-笔记
  8. linux ptrace 读内存,Linux高级调试与优化——ptrace
  9. odoo10参考系列--ORM API 三(字段、继承与扩展、域和更新到新API)
  10. java 正则高级应用_JAVA正则表白式高级用法(分组与捉拿).
  11. 阿里云 Aliplayer高级功能介绍(四):直播时移
  12. Visual C# 2008+SQL Server 2005 数据库与网络开发-- 1.1 Visual Studio 2008概述
  13. 2021认证杯(小美赛)思路分析
  14. 深入浅出MFC笔记(5)
  15. iNFTnews | 元宇宙进行时:那些跑步入场的互联网大厂在如何谋篇布局?
  16. 朗文当代高级英语辞典android,朗文当代高级英语辞典最新版下载-朗文当代高级英语辞典第6版appv4.5.2 安卓版 - 极光下载站...
  17. win7没有显示wifi连接到服务器,Win7笔记本电脑搜不到无线网络(Wifi)怎么办?...
  18. sqlserver 汉字转拼音(转载)
  19. Java模拟物流快递系统程序设计(此题仅仅实现类的继承与多态,后续增加接口部分)
  20. java程序员语录_java程序员励志说说26条

热门文章

  1. 基于netcore的微服务——Polly(2)
  2. FG6223EUUD系列模块选型参考
  3. Windows微信可以上网但是浏览器却用不了网络如何解决
  4. 2022年二级建造师考试矿业工程练习题及答案
  5. CSS3动画及3D初识
  6. Web漏洞扫描-Appscan安装配置及扫描
  7. CASE语句的使用方法
  8. 图标字体放大,就TM叫“长辈模式”??
  9. 【电子学会】2021年12月图形化三级 -- 跳高比赛
  10. 摄影基础之-单反测光系统-上