【问题标题】:Ignore quotation when reading input读取输入时忽略引号
【发布时间】:2020-12-13 19:03:29
【问题描述】:

有没有办法读取这种格式的输入:

{int,"string1","string2","string3"}

显然 printf/scanf 函数不允许我忽略引号,所以我想知道如何绕过这个限制。我想的一种方法是使用 strtok 并忽略“{”、逗号和引号。有什么我可能不知道的更快的方法吗?

【问题讨论】:

  • 是的。在您的 scanf() 手册页中查找扫描集。
  • 它们真的是输入中的大引号吗?
  • 不,它们不是卷曲的。只是像 printf 中使用的常规引号。

标签: c input


【解决方案1】:

你绝对可以忽略任何字符:

char buf[100];
scanf("%99[^{},\"]", buf);

这将读入buf 第一个令牌,在您的情况下为int。对您需要的所有令牌重复此调用。

【讨论】:

  • 谢谢。答案确实是 @Jonathan Leffler 指出的 Scansets
猜你喜欢
  • 1970-01-01
  • 2020-11-29
  • 2022-06-13
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多