我目前有一个基本上从网页读取html的程序。发送Web服务器的HTTP请求后,我回来,我用fdopen读取插座的响应:在HTTP响应中寻找换行符
FILE *webpage = fdopen(socket, "r");
然后我有一个使用与fgets让每一行,然后将它们打印到文件的循环:
while(!feof(webpage)){
fgets(newline, 1000, webpage);
fprintf ...
}
计划的这部分工作得很好,而我最终得到了一些测试文件,如:
HTTP/1.1 200 OK^M
Date: Fri, 18 Nov 2011 04:42:40 GMT^M
Server: Apache/2.2.14^M
Accept-Ranges: bytes^M
Cache-Control: max-age=0^M
Expires: Fri, 18 Nov 2011 04:42:40 GMT^M
Vary: Accept-Encoding^M
Content-Length: 345235^M
Connection: close^M
Content-Type: text/html^M
X-Pad: avoid browser bug^M
^M
<html lang="en">
<head>
...
我想找到这个新行是正确下的XPad,并插入正确的事情WH发现这个换行符(基本上在打印标题后做一些事情。但是,我不知道如何找到该行,或者^ Ms是什么。
像
if(newline == "\r\n"){
...
}
或只是 “\ n” 目前,我想要的东西,这是行不通的。我认为它与^ M有关,但我不确定。
谢谢!
为什么不换行字符10的ASCII值?而不是“\ n”? – niko
无论'x'是什么,表达式'x ==“\ r \ n”'在C中几乎总是错误的。符合标准的编译器甚至可以用0代替整个表达式。查看如何比较C中的字符串。 –