c/c++语言开发共享c getline跳过空白行

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

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐