-5

假设我们有一个名为 text 的指针,它以这种格式打印这个东西:

Date: Fri, 20 Apr 2012 11:42:05 GMT
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2
PHP/5.3.6
X-Powered-By: PHP/5.3.6
Content-Length: 12
Connection: close
Content-Type: text/html
         <--- empty line

开始打印这个

当您在 c 或 c++ 中检测到空行时,如何开始打印某些内容?

4

2 回答 2

2

如果您逐行阅读,只需检查行的长度。如果长度为零,那么你有一个空行。

如果您必须检查内存缓冲区,请在换行时将计数器重置为零。如果您到达换行符并且计数器已经为零,那么您有一个空行。

编辑:一些代码如何使用内存缓冲区执行此操作:

char *buffer = "Hello\nWorld\n\nFoo\n";
char *data_start = NULL;

char *line_beg, *p;
for (line_beg = p = buffer; *p; p++)
{
    if (*p == '\n')
    {
        if (line_beg == p)
        {
            /* Empty line */
            data_start = p + 1;
            break;
        }
        line_beg = p + 1;
    }
}

if (data_start != NULL)
    printf("Data: %s", data_start);
于 2012-04-20T11:44:24.847 回答
0

由于这是上一篇文章的延续我想您不妨探索一下fdopen使用fgets逐行读取输出将是一种更简单的方法。然后您可以轻松识别空白行,

于 2012-04-20T11:55:06.627 回答