【发布时间】:2015-11-18 03:28:44
【问题描述】:
我正在用 C 语言编写一个 HTTP 客户端/服务器,我想将内容(不是 http 标头)读入一个字符串。因为标题中的最后一件事是 \r\n\r\n 序列,所以我需要告诉 sccanf 跳过所有内容直到 \r\n\r\n,然后从 \r\n 之后的第一个字符串开始扫描\r\n 。我从来没有真正理解复杂的 printf 和 scanf 格式描述符,每次我尝试阅读文档时,我都会很快感到困惑。我最好的尝试是sscanf(str, [^\r\n\r\n]%s, mystr);,但它不起作用。
【问题讨论】:
-
试试这个 ->
sscanf(str, %*[\r\n\r\n]%s, mystr);. -
第一部分使用 strtok(str,"\r\n\r\n"),第二部分使用 strtok(NULL,"\r\n\r\n")跨度>
-
不要使用
scanf()/sscanf()。它们几乎从不合适,而且在大多数情况下,还有很多更明智的选择。对于标记化,有strtok_r()。