从配置文件读取和存储值的函数 我对C++编程比较新,我只是尝试创建一个函数,打开一个配置文件,读取每一行和列,然后将值存储到某个数组中。

从配置文件读取和存储值的函数 我对C++编程比较新,我只是尝试创建一个函数,打开一个配置文件,读取每一行和列,然后将值存储到某个数组中。,c++,parsing,configuration,C++,Parsing,Configuration,因此,我的配置文件将如下所示,它只存储值: 12345 10 20 67890 30 40 ... ... 我要做的是打开这个文件,读取每一行并将值存储到[I][j]数组中。因此,对于上述情况,它将存储为: [0][0] = 12345 [0][1] = 10 [0][2] = 20 [1][0] = 67890 [1][1] = 30 [1][2] = 40 我一直在看fopen函数来打开文件,但当我研究如何按自己的意愿存储这些值时(使用fgets等函数),我总是碰

因此,我的配置文件将如下所示,它只存储值:

12345    10    20
67890    30    40
...
...
我要做的是打开这个文件,读取每一行并将值存储到
[I][j]
数组中。因此,对于上述情况,它将存储为:

[0][0] = 12345
[0][1] = 10
[0][2] = 20
[1][0] = 67890
[1][1] = 30
[1][2] = 40
我一直在看
fopen
函数来打开文件,但当我研究如何按自己的意愿存储这些值时(使用
fgets
等函数),我总是碰壁

我迄今为止的努力:

#包括
使用名称空间std;
int main()
{
文件*fp;
fp=fopen(“configFile.conf”,“r”);
chara[20];
charb[20];
charc[20];
fscanf(fp,“%s\t%s\t%s”,a、b、c);
cout这是C代码:

#include <stdio.h>

int main()
{
   FILE *fp;
   int i = 0;
   fp = fopen("configFile.conf", "r");

   if(fp == NULL) // To check for errors
   { 
      printf("Error \n");
   }

   char a[20][20]; // Declared a 2D array
   char b[20][20];
   char c[20][20];

   while (fscanf(fp, "%s\t%s\t%s", a[i], b[i], c[i]) != EOF) //fscanf returns EOF if end of file (or an input error) occurs 
   {
      printf("%s  %s   %s\n", a[i], b[i], c[i]);
      i++;
   }

   return 0;
}
#包括
int main()
{
文件*fp;
int i=0;
fp=fopen(“configFile.conf”,“r”);
if(fp==NULL)//检查错误
{ 
printf(“错误\n”);
}
char a[20][20];//声明了一个2D数组
字符b[20][20];
字符c[20][20];
而(fscanf(fp,“%s\t%s\t%s”,a[i],b[i],c[i])!=EOF)//fscanf在文件结束(或输入错误)时返回EOF
{
printf(“%s%s%s\n”,a[i],b[i],c[i]);
i++;
}
返回0;
}
C++代码是:

#include <iostream>
using namespace std;

int main()
{
   FILE *fp;
   int i = 0;
   fp = fopen("configFile.conf", "r");

   if(fp == NULL) // To check for errors
   {
      cout<< "Error" << endl;
   }

   char a[20][20]; // Declared a 2D array
   char b[20][20];
   char c[20][20];

   while (fscanf(fp, "%s\t%s\t%s", a[i], b[i], c[i]) != EOF) //fscanf returns EOF if end of file (or an input error) occurs 
   {
      cout << a[i] << " " << b[i] << " " << c[i] << endl;
      i++;
   }

   return 0;
}
#包括
使用名称空间std;
int main()
{
文件*fp;
int i=0;
fp=fopen(“configFile.conf”,“r”);
if(fp==NULL)//检查错误
{

cout只是一个开始,如果你知道有多少行和列,那么你可以定义一个2D
int
数组,用于读取文件并存储在2D数组中,如果你不知道,那么你必须继续如果你想要一个具体的答案,你需要提供比“撞墙”更具体的细节。显示您尝试的内容,并解释您可能遇到的具体错误或错误行为或理解缺失。您可以使用
fscanf(fileptr,%[^\n]s”,数组);
逐行读取文件。然后,您可以遍历数组并检索ASCII值,并使用类似
atoi()的内容
转换为整数。用example@kaylumt更新这里有些混乱,所以我也包括了
C
以及
C++
代码。
#include <iostream>
using namespace std;

int main()
{
   FILE *fp;
   int i = 0;
   fp = fopen("configFile.conf", "r");

   if(fp == NULL) // To check for errors
   {
      cout<< "Error" << endl;
   }

   char a[20][20]; // Declared a 2D array
   char b[20][20];
   char c[20][20];

   while (fscanf(fp, "%s\t%s\t%s", a[i], b[i], c[i]) != EOF) //fscanf returns EOF if end of file (or an input error) occurs 
   {
      cout << a[i] << " " << b[i] << " " << c[i] << endl;
      i++;
   }

   return 0;
}