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个数字,大约有几百行,行数不一定。
发现刚才两位网友没有考虑到字符长度的问题,难道不用考虑吗?我刚刚测试下,屏幕什么也没有打印出来。 展开
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个数字,大约有几百行,行数不一定。
发现刚才两位网友没有考虑到字符长度的问题,难道不用考虑吗?我刚刚测试下,屏幕什么也没有打印出来。 展开
3个回答
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;
}
//---------------------------------------------------------------------------
还有,如果你的文件路径和示例程序中的不一致,请自行修改为实际路径.
*************************************************
每行十个字符? 应该是每行十个数字吧?!
读取文件中的数字,并保存到一个一维数组中的示例程序如下:
//---------------------------------------------------------------------------
#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;
}
//---------------------------------------------------------------------------
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道是不是一定要是.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);
}
用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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询