C:使用fscanf时忽略特定字符

时间:2016-10-22 12:42:01

标签: c

作为示例,我有一个包含此文本的文本文件:"name?"

我想将此字符串仅保存为name?

我尝试("%["]"),但这不起作用。

我应该使用哪种功能?

1 个答案:

答案 0 :(得分:2)

The scanf and fscanf functions工作完全相同。但是你的格式是错误的。

尝试改为,例如"\"%[^\"]\""作为您的格式。

第一个和最后一个"用于标记字符串的开头和结尾。在字符串内部,不能使用普通的双引号,因为它将结束字符串。所以这些必须使用反斜杠进行转义。

如果我们将格式字符串分解为三个主要组件:

  • \" - 这与文字双引号
  • 相符
  • %[^\"] - 这匹配包含双引号的字符串 not (否定就是^所做的事情)
  • 最后再次\",以匹配输入的结束引用