c++ - 在数组中存储配置值
问题描述
我有一个配置文件,其中包含三列和 n 行。每列行都有一组相应的值。我的配置文件将如下所示:
12345 10 20
67890 30 40
...
...
所以 id 12345 对应的值是 10 和 20,而 67890 对应的值是 30 和 40。
我只想知道是否有更有效/更短的方法来做到这一点。我觉得我在这里加倍了向量和字符数组存储值。我试图将每个值存储在单个数组中,而不是像这样存储在[1][3]
数组中:
|12345|10|20|
它像这样存储:
|1|2|3|4|5|1|0|2|0|
理想情况下,我想将它们存储在第一个选项中。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
FILE *fp;
fp = fopen("configFile.conf","r");
char a[20];
char b[20];
char c[20];
vector<string> aVect;
vector<string> bVect;
vector<string> cVect;
int i = 0;
int j = 0;
while(!feof(fp)){
fscanf(fp, "%s\t%s\t%s", a, b, c);
aVect.push_back(a);
bVect.push_back(b);
cVect.push_back(c);
i++;
j = 0;
}
}
解决方案
有多种读取和存储配置文件值的方法。
例1:
struct LineData
{
int a;
int b;
int c;
};
...
LineData ldata = {0};
std::vector<LineData> configFileData;
...
fscanf(fp, "%d\t%d\t%d", &ldata.a, &ldata.b, &ldata.c);
configFileData.push_back(ldata);
...
推荐阅读
- javascript - 仅使用不带名称的方法签名声明类的接口
- python - 使用 django-filter 时在 Django 中向表单添加占位符
- functional-programming - 将文本解析到 Racket/Scheme 中的树
- c# - 多线程 WinForm 应用程序中的本地位图导致错误“对象当前正在其他地方使用。”
- linux - 如何在 solCloud 配置的 drupal 中修复“您正在使用不兼容的 schema.xml 配置文件”错误
- node.js - 如何让客户进入动态 nsp 的房间?
- java - getClass() 在 Enum 中使用构造函数时打印二进制格式
- opengl - 在 Windows 上的 LLDB 中运行 Rust OpenGL 程序时,窗口不会打开
- java - 会通知中断睡眠线程吗?
- python-3.x - 强制 sock.accept() 引发测试异常