C语言fgets按行读取文件,末尾的换行符问题 | 您所在的位置:网站首页 › 分页始终多个回车 › C语言fgets按行读取文件,末尾的换行符问题 |
之前的博客提到了怎样对长度不确定且无法估计的文本文件进行按行读取的问题,这次我发现了一个每一行的末尾换行符处理的问题以及fgets的一个特性,这都是我之前没有注意到的地方。 文章目录 1.每行末尾换行符的处理1.1解释1.2代码 2.fgets末尾'\0'问题2.1运行结果 3.总结 1.每行末尾换行符的处理首先,问题的导入在于我写的一个小程序。 1.我在一个文本文件中打字,然后想用fgets读取第一行的内容2.我想再读取之后对数组进行打印来体现出换行符的存在3.发现问题。 下面是文本文件的内容: 下面是控制台打印读取的内容。(我把数组初始化为’9’,为了视觉方便,每个字符两侧放上:) 可以看到读取结果显示每行末尾存在着两个换行符。并且,那个空格字符是哪来的?? 1.1解释1.为什么有两个换行符? Windows系统下换行符是两个字符’\r’和’\n’,所以会换行两次 2.空格哪来的?? fgets会再读取结束后在输入流的末尾自动加上’\0’作为结束的标志,而打印’\0’字符就是一个空格。 1.2代码下面是我写的代码,可以看一看, #include #include #define filepath "e:info.txt" #define MAXLEN 100 int main(void) { FILE *fp = fopen(filepath, "r"); if (!fp) {printf("file open error!\n"); system("pause"); exit(0);} char target[16]; for (int i = 0; i |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |