-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を使用すると、出力を 1 行ずつ読み取る簡単な方法になります。その後、空白行を簡単に識別できます。

于 2012-04-20T11:55:06.627 に答える