c++ 怎样将文件中的数据读到数组中去?

0.0070.0080.0070.0060.0060.0040.0050.0030.0030.0030.0000.002-0.0010.000-0.001-0.003-0... 0.007 0.008 0.007 0.006 0.006 0.004 0.005
0.003 0.003 0.003 0.000 0.002 -0.001 0.000
-0.001 -0.003 -0.001 -0.006 -0.002 -0.006 -0.006
-0.005 -0.011 -0.005 -0.012 -0.008 -0.010 -0.015
-0.007 -0.019 -0.010 -0.017 -0.018 -0.011 -0.026
-0.010 -0.025 -0.019 -0.015 -0.031 -0.009 -0.034
-0.016 -0.022 -0.035 -0.007 -0.046 -0.010 -0.033
-0.035 -0.007 -0.058 0.001 -0.050 -0.030 -0.011
每行十个字符,读到一维数组就行。
muyejingefeng 和一楼的貌似都读不进去

文件名假设为wave.dat
////////////////////////////////////
0.016 0.016 0.016 0.016 0.017 0.017 0.017
0.017 0.017 0.017 0.017 0.017 0.018 0.017
0.017 0.017 0.017 0.017 0.017 0.017 0.017
0.016 0.016 0.016 0.016 0.015 0.014 0.014
0.013 0.013 0.012 0.011 0.011 0.009 0.010
0.007 0.008 0.007 0.006 0.006 0.004 0.005
0.003 0.003 0.003 0.000 0.002 -0.001 0.000
////////////////////////
数据是上面的样子,每个数字占有10个空格,每行7个数字,大约有几百行,行数不一定。
发现刚才两位网友没有考虑到字符长度的问题,难道不用考虑吗?我刚刚测试下,屏幕什么也没有打印出来。
展开
 我来答
匿名用户
2010-03-14
展开全部
程序是以数字进行读取的,所以不需要考虑字符串长度,你是需要以数字读取还是字符串读取?

还有,如果你的文件路径和示例程序中的不一致,请自行修改为实际路径.

*************************************************

每行十个字符? 应该是每行十个数字吧?!

读取文件中的数字,并保存到一个一维数组中的示例程序如下:

//---------------------------------------------------------------------------
#include <iostream>
#include <fstream>

using namespace std;

int main(void)
{
ifstream inf("c:\\da.txt"); //假设数据保存在c:\da.txt文件中
double data[10000]; //用于保存读取出来的数字的数组
int i=0;

while (inf>>data[i]) //将inf文件中的数字读取到data数组中
++i;
inf.close(); //读取完毕后,关闭文件

for (int j=0; j<i; j++) { //输出data数组(即c:\da.txt文件)中保存的数字.
cout<<data[j]<<'\t';
}
return 0;
}
//---------------------------------------------------------------------------
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jy001227801
2010-03-14
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
不知道是不是一定要是.dat的。。我写的是.txt
用C写的
#include<stdio.h>
#define M 81//要放的数字的个数
#define N 7 //要放的数字的长度
void main()
{
FILE *fp;
float str[M][N];
char i=0,j=0;
fp=fopen("D:\\wave.txt","r");
while (!feof(fp))
{
fscanf(fp,"%s",str[i]);
printf("%s ",str[i]);
i++;
}

fclose(fp);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
muyejingefeng
2010-03-14 · TA获得超过348个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:0
展开全部
#include<iostream>
#include<fstream>
using namespace std;

int main()
{
ifstream in=ifstream("d:\\1.txt");
double arr[100];
double value;
int index=0;
while(in>>value)
{
arr[index]=value;
index++;
}
in.close();
for(int i=0;i<index;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式