我从文本文件中读取字符串时遇到问题。在文件中有以这种格式的数据:
东西= “测试”
我想在引号之间读取字符串。所以在我的程序中我做了:
fscanf(fil,"language=\"%s[^\"]",data);
或
fscanf(fil,"language=\"%s\"",data);
但我总是在变量数据中进行测试。如何忽略第二个引用?除了在文件中放置空格之外。我想在文本文件中使用该格式。
我将不胜感激。
答案 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;
}