在C语言中,如何在包含新行字符的缓冲区上使用sscanf。
缓冲区示例:

buf = "Name: Sam\nID: 123\nLocation: 123\nDest: abc\0";

我想做的事情是:
sscanf(buf, "%[^\n]s\n%[^\n]s\n%[^\n]s\n%[^\0]s", line1, line2, line3, line4);

sscanf只是选第1行。有什么办法能让它起作用吗。
注意:我真的希望避免在缓冲区上循环4次,这是一个可能的解决方案。

最佳答案

感谢WhozCraig的回答:
“丢失那些规范中的s,”%[^\n]\n%[^\n]\n…“。”。sscanf正在寻找一个字符串,除了newline,然后是's'(它没有找到,然后。。。希望你能明白这一点。”

关于c - 在带有换行符的缓冲区上使用sscanf:如何读取所有行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25880065/

10-13 06:29