我正在尝试使用 sscanf 从文本文件中读取一行,然后将其各部分保存到不同的变量中。 文本文件如下所示:
name 12345
所以我编写了以下代码:
sscanf(buffer, "%s %d", name, &number);
这很好用,但是当名称之间有空格时我该怎么办?例如
name lastname 12345
还是偶数?
name the3rd 12345
我的 sscanf 在这两个示例中不起作用。我尝试使用 [^] 但没有成功,甚至 %*s %[^0-9] %d 但也没有成功。
如有任何帮助,我们将不胜感激。
最佳答案
我建议不要试图强行解决问题。如果很难用sscanf()
,也许这不是正确的解决方案。
我建议使用实际的正则表达式(如果你有<regexp.h>
,这很容易),或者使用手动解析技术来查找最后一个空格并在其上分割字符串。它可以像strrchr(buffer, ' ');
一样简单毕竟。
关于c - 包含字母、空格和整数的 sscanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41891766/