【发布时间】:2013-08-24 15:42:41
【问题描述】:
我有一个包含如下键和值的文本文件:
keyOne=1
keyTwo=734
keyThree=22.3
keyFour=5
在我的示例中,键只是小写和大写字母。这些值是整数或浮点数。每个键和值由等号 (=) 分隔。现在我想将这些值读入程序中的变量中。
这是我尝试读取值的代码: (我省略了将值存储在程序变量中的部分,现在将它们打印出来以进行演示。)
std::fstream file(optionsFile, std::fstream::in);
if (file.good()) {
int begin;
int end;
std::string line;
while(std::getline(file, line)) {
// find the position of the value in the line
for (unsigned int i = 0; i < line.length(); i++) {
if (line.at(i) == '=') {
begin = i + 1;
end = line.length();
break;
}
}
// build the string... it starts at <begin> and ends at <end>
const char *string = "";
for (int i = begin; i < end; i++) {
string += line.at(i);
}
// only gibberish is printed in the following line :(
std::cout << "string=" << string << std::endl;
}
}
我不明白为什么它不打印值.. 而是只打印奇怪的东西,甚至什么也不打印
请帮帮我,这让我很伤心:(
【问题讨论】:
-
请写一个自带的sn-p,里面有main函数,大家可以做个实验。
-
你是什么意思:“检查密钥是否是某个密钥(检查用户是否弄乱了它)”?
标签: c++ file text fstream ifstream