while(getline (&line, &line_size, f) != -1){}
我正在使用此function读取线条。 但我想知道我什么时候读一个空行。 有人可以帮忙吗?
因为H2CO3已经提到过你可以使用行长:
while (getline (&line, &line_size, f) != -1) { if (strlen(line) == 1) { printf("H2CO3 spotted a blank linen"); } /* or alternatively */ if ('n' == line[0]) { printf("Ed Heal also spotted the blank linen"); } .. }
您需要定义空行。
此外,因为“getline函数从流中读取整行,直到并包括下一个换行符。”
我不认为
strlen(line) == 1
是可移植的,因为Win / DOS和Unix使用不同的EOL约定。 此外,EOF可能在EOL角色完成之前发生。 所以真的,你需要定义一个类似的函数
int is_blank_line(char *line, int line_size) { return line_size == 0 || is_eol(line) }
其中is_eol是为您所在的平台定义的。 这是你可以放在空白处的空白行等等。
所以你会得到类似的东西:
int is_eol(char *line) { ... return result; } ... int is_blank_line(char *line, int line_size) { return line_size == 0 || is_eol(line) } ... while (getline (&line, &line_size, f) != -1) { if (is_blank_line(line, line_size)) { printf("blank line spottedn"); } ... }
以上就是c/c++开发分享c getline跳过空白行相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/549972.html