日常知识点之c语言按行读配置文件,及行尾符CRLF导致的问题
1:知识点总结
Unix每行结尾为"/n",
Windows系统每行结尾是"/r/n"
printf输出时,如果内部字段含有/r,会自动跳转到行首进行后续的输出。
printf输出时,有时候一直不打印,是因为printf底层是有缓冲区的,要在终端输出要用换行。
2:简单问题描述。
行为:我在做一个读取配置文件并进行解析的简单demo,按行读取,使用=进行分割,对value值进行拼接。 问题:按行读取后,printf打印一直无法理解,出现现象一直如下:
例如: const char* test="mytest of data./r";
printf("test:[%s][%lu] /n", test, strlen(test));
实际输出为: ][16] mytest of data.
因为一直没想到行尾描述符的差异,以及printf输出该现象第一次遇到,定位稍久。
3:问题定位。
共有 0 条评论