我最近从c#更改为c ++。我一直在看一些有关如何读取配置文件的教程。我可能会问错,我的意思是:我正在编写一个程序,但这是针对多个用户的。每个用户都会喜欢文本文件中的内容。示例:在我的文本文件(“ items.txt”)中,我具有默认的“ ints”和可配置的“ ints”。
10=5
90=2
50=9
在C#中,如果我没记错的话,我会读取所有行,并且如果该行以“ 10 =”开头,那么我会拆分文本,因此我的行只能是可配置的int,并且我可以在程序中轻松使用它是这样的:
string[] lines = File.ReadAllLines(path);
string str;
foreach (string line in lines)
{
if (line.StartsWith("10"))
{
str = line.Split('=')[1];
//I have what i need (str);
}
}
我做了我需要的一切。那么,用c ++做到这一点的最佳方法是什么?
还:我需要为它们指定一行,以便以后在程序中使用它们。
在此先多谢!
您的文件中有3件事:
getline
=
)值(后面的部分=
)。
我们可以通过查找=
字符来拆分键和值。
因此,您将获得类似以下内容的信息:
std::ifstream file(path);
if (!file) {
std::cerr << "unable to open " << path << std::endl;
return false;
}
for (std::string line; getline(file, line); ) {
auto pos = line.find('=');
if (pos == line.end()) {
std::cerr << "skipping invalid line '" << line << "'\n";
continue;
}
auto key = line.substr(0, pos);
auto val = line.substr(pos);
// do something with key,val
}
如果要将上面的键和值字符串转换为int
,可以使用进行std::stringstream
转换,也可以使用std::strtol
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句