【发布时间】:2012-01-26 08:55:25
【问题描述】:
我在获取 c++ 代码方面需要一些帮助,
情况是,我需要读取一个包含以下内容的文本文件:
//THIS LINE IS COMMENTED OUT
//THIS LINE TOO
Variable1 = "1"; //comment for this line
Address = "some text value here"; //comment for this line
所以现在我想使用 c++ 读取这个文本文件并将值检索为:
Variable1 = 1
Address = some text value here
那么我该如何完成这项工作,请需要您的专家帮助。 我只设法使用下面的代码跳过文本文件的注释行,但现在不知道如何读取变量。我是 C++ 新手
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
ifstream myfile ("text.txt");
if (myfile.is_open())
{
while ( myfile.good() )
{
getline (myfile,line);
if(line[0]=='/')
continue;
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
【问题讨论】:
-
如何知道一行值的数据类型?有哪些可能的数据类型?您是否有指定文件格式(或任何其他规范)的语法?您希望如何在程序中存储和使用键/值对?
-
Ehm,你需要写一个C解析器吗?从头开始?这是很多工作。顺便说一句,您当前的代码并不好,因为它会丢失像
/*comment*/ var = 1;这样的行中的变量 -
查看
std::string的find和substr函数。它们可用于将字符串拆分为您需要的名称/值对。然后使用std::map来存储值。