我尝试使用sscanf从文本文件中读取一行,然后将其中的部分保存到不同的变量中。 文本文件如下所示:
name 12345
所以我写了以下代码:
sscanf(buffer, "%s %d", name, &number);
效果很好,但是当名字之间有空格时我该怎么办? e.g。
name lastname 12345
甚至是数字?
name the3rd 12345
我的sscanf在这两个例子中不起作用。我试图使用[^]但没有成功甚至%* s%[^ 0-9]%d但是也没有用。
任何帮助将不胜感激。
答案 0 :(得分:1)
我建议不要试图解决问题。如果sscanf()
很难,那可能不是正确的解决方案。
我建议使用实际的正则表达式(如果你有<regexp.h>
很容易),或者使用手动解析技术来查找最后一个空格并将字符串拆分。毕竟,它可以像strrchr(buffer, ' ');
一样简单。