如何忽略fscanf中的引用

时间:2017-08-09 19:48:25

标签: c++ stdio

我从文本文件中读取字符串时遇到问题。在文件中有以这种格式的数据:

东西= “测试”

我想在引号之间读取字符串。所以在我的程序中我做了:

fscanf(fil,"language=\"%s[^\"]",data);  

fscanf(fil,"language=\"%s\"",data);

但我总是在变量数据中进行测试。如何忽略第二个引用?除了在文件中放置空格之外。我想在文本文件中使用该格式。

我将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您不想过于深入地考虑格式化字符串,则可以始终读取完整字符串,而不是取出所需的子字符串。

示例:

以下代码在str中搜索第一个"和最后一个",并将子字符串放在strNew中。

#include <string>
#include <iostream>

using namespace std;  //used for ease but not the best to use in actual code.

int main()
{
  string str = "variable=\"name\"";
  cout << str << endl;
  int first = str.find("\"");
  int last = str.find_last_of("\"");
  string strNew = str.substr (first + 1, last - first -1);
  cout << strNew << endl;
  return 0;
}