VC++中从txt文本中读取数据并且存到二维数组中

这几天因为在做作业,所以不仅会想到这一类有关的问题。现在我需要实现的是讲txt文件的数据读取出来并且存储到一个二维数组中。,首先为了对待什么样的矩阵我们都可以读取,我们就要设置一个动态的矩阵,这样当我们知道txt文本中矩阵的维数的时候,就可以直接在程序中输入矩阵的维数,在程序的内部就创建了一个适当的二维矩阵来存储我们的 数据。于是这个程序遇到第一个难点,怎样来动态的创建一个二维的矩阵:

int m,n;
int **p=new int*[m];
for(int i=0;i<m;i++)
{
p[i]=new int[n]; 
}

当然这个地方的n和m是有用户输入。现在我们要讲txt数据拿到程序中来,我们在程序中设置一个容器用来盛装这些数据,容器创建好了,我们就要从txt文本中获取数据,当然在其他的博客中已经介绍了怎样来获取数据在其他的博文中已经有所说,上一次从txt文本中读取数据是用到的函数fread,在这里我们使用另外的一个函数fscanf(*file,"%f",&);这个里面参数的意思是,第一个是文件的地址,第二个是所读取的数据类型,第三个是我们读取数据要将他们存储的地址,也即是上面我们所创建的文件的地址。卖关子到现在,还是让我们看一下源程序吧:

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n,m;//矩阵的维数
       //我们要做的是从txt文本中读取一个矩阵
cout<<"输入矩阵的维数:"<<endl;
        cin>>n>>m;
//创建一个动态的二维矩阵
float **A=new float*[n];
           for(int k=0;k<m;k++)
  {
               A[k]=new float[m];
  }
         FILE *fp=fopen("data.txt","r");
if(!fp)
{
cout<<"Sorry 文件打开失败!"<<endl;
}

     //从文件中获取数据,并且存储到数据
       for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
                     fscanf(fp,"%f",&A[i][j]);
}
}

      //检验是不是从文件中获取到数据,并且存储到二维数据中
for(int i1=0;i1<n;i1++)
{
for(int j1=0;j1<m;j1++)
{
                     cout<<A[i1][j1]<<endl;
}
}
    fclose(fp);
    return 0;
}


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在 C 语言,可以使用 fscanf 函数读取文件数据,并以逗号隔开的方式储到二维数组。代码示例如下: ``` #include <stdio.h> #define ROWS 100 #define COLS 100 int main() { int i, j; int data[ROWS][COLS]; FILE *fp; char file_name[] = "data.txt"; fp = fopen(file_name, "r"); if (fp == NULL) { printf("Error: Unable to open file.\n"); return 1; } for (i = 0; i < ROWS; i++) { for (j = 0; j < COLS; j++) { fscanf(fp, "%d,", &data[i][j]); } } fclose(fp); return 0; } ``` 上面的代码读取文件 `data.txt` 数据,并以逗号为分隔符将每一行的数据储到二维数组 `data` 。 ### 回答2: 读取txt数据以逗号隔开到二维数组的方法如下: 首先,我们需要打开txt文件并读取的内容。可以使用Python的内置函数open()来打开文件,并使用read()方法读取文件的内容。假设我们的txt文件名为data.txt,代码如下: ``` file = open('data.txt', 'r') data = file.read() ``` 接下来,我们需要将读取文本数据以逗号进行分割,并储到二维数组。可以使用split()方法来实现这一功能。假设我们的txt文件数据是以逗号隔开的数字,代码如下: ``` rows = data.split('\n') # 通过换行符将文本数据分割为行 array = [] for row in rows: elements = row.split(',') # 通过逗号将每行的数据分割为元素 array.append(elements) # 将每个元素添加到二维数组 ``` 最后,我们可以对二维数组进行操作,比如输出或者进行其他计算。例如,可以使用for循环来遍历二维数组并输出每个元素: ``` for row in array: for element in row: print(element) ``` 综上所述,以上代码可以实现读取txt数据以逗号隔开到二维数组的功能。注意,在实际应用,还需要对文件读取数据转换过程进行错误处理和逻辑判断,以确保程序的正常运行。 ### 回答3: 要将以逗号隔开的txt数据储到二维数组,我们可以按照以下步骤进行操作: 首先,我们需要打开txt文件,使用适当的方法来读取文件数据。可以使用Python的open函数和readlines方法来实现。 ``` file = open("data.txt","r") lines = file.readlines() ``` 接下来,我们需要创建一个空的二维数组,用于数据。可以使用列表嵌套列表的方式来创建二维数组。 ``` data = [] ``` 然后,我们需要遍历读取到的每一行数据,并按照逗号进行分割,将分割后的数据添加到二维数组。可以使用split方法来实现。 ``` for line in lines: row = line.split(",") data.append(row) ``` 最后,我们可以关闭文件,释放资源。 ``` file.close() ``` 通过以上步骤,我们就可以将txt文件以逗号隔开的数据储到二维数组了。在实际使用,我们可以根据具体需求对数组进行进一步处理和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值