我正在用C编写一个HTTP客户机/服务器,我想将内容(而不是HTTP头)读入一个字符串。由于头中的最后一项是一个序列,所以我需要告诉sccanf跳过所有内容,直到\r\n\r\n,然后在后面的第一个字符串开始扫描。我从未真正理解过复杂的printf和scanf格式描述符,每次我试图阅读文档时,我都会很快感到困惑。我最好的尝试是sscanf(str, [^\r\n\r\n]%s, mystr);但它不起作用。

最佳答案

scanf的语法与printf的语法几乎相同。因此,您需要使用的是:

sscanf(str, "%s\r\n\r\n%s", dummystr, mystr);

当然,您需要将dummystr和mystr分配到足够大的空间,以避免缓冲区溢出(strlen(str)对两者都起作用)。

关于c - 如何在C中\r\n\r\n之后使sscanf开始扫描?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33771321/

10-12 16:14