如何用C++对一个文本文档里面的许多数据进行逐行读取,并放入数组中 30
展开全部
推荐使用文件流来读取。
如果你的数据是用空格、制表符和换行符来分隔的,那么程序可以写的很简单。直接逐行用fin就可以了。
如果你的数据是用逗号或者其他字符来分隔,用换行来分行的,那么你需要在循环中写入两次读入,第一次用于读入数据,第二次用于跳过字符。
如果数据中间的分隔字符是不规范、不一致、数量都未知的,那么通用的解决办法则是按单个字符从文件流中读入,然后使用数字判断函数、或者自己判断ASC码来判断是否为数字字符,然后在下次非数字字符之前对逐个数字字符进行按值进位累加。
若是要从任意一行开始读入的话,添加一个跳行函数就行了。如果你是用的清华版的那种C++教材,跳行函数在书中有的,我就不再赘述了。有了跳行函数,直接在主程序中添加一个循环,使用跳行函数就可以了。
希望我的回答对你有帮助
如果你的数据是用空格、制表符和换行符来分隔的,那么程序可以写的很简单。直接逐行用fin就可以了。
如果你的数据是用逗号或者其他字符来分隔,用换行来分行的,那么你需要在循环中写入两次读入,第一次用于读入数据,第二次用于跳过字符。
如果数据中间的分隔字符是不规范、不一致、数量都未知的,那么通用的解决办法则是按单个字符从文件流中读入,然后使用数字判断函数、或者自己判断ASC码来判断是否为数字字符,然后在下次非数字字符之前对逐个数字字符进行按值进位累加。
若是要从任意一行开始读入的话,添加一个跳行函数就行了。如果你是用的清华版的那种C++教材,跳行函数在书中有的,我就不再赘述了。有了跳行函数,直接在主程序中添加一个循环,使用跳行函数就可以了。
希望我的回答对你有帮助
展开全部
#include<stdio.h>
#include<stdlib.h>
#define MAX 20000
char *srcfile = "data.txt"; //文件名
int data[MAX][8];
int main()
{
FILE *src = fopen(src,"r");
int i,j;
for(i = 0;i < MAX;i++)
{
fscanf(srcfile,"%d,%d,%d,%d,%d,%d,%d,%d",&data[i][0],&data[i][1],&data[i][2],&data[i][3],&data[i][4],&data[i][5],&data[i][6],&data[i][7]);
if(feof(src))
break;
}
return 0;
}
如果数据都是整数的话这个代码应该没问题了
#include<stdlib.h>
#define MAX 20000
char *srcfile = "data.txt"; //文件名
int data[MAX][8];
int main()
{
FILE *src = fopen(src,"r");
int i,j;
for(i = 0;i < MAX;i++)
{
fscanf(srcfile,"%d,%d,%d,%d,%d,%d,%d,%d",&data[i][0],&data[i][1],&data[i][2],&data[i][3],&data[i][4],&data[i][5],&data[i][6],&data[i][7]);
if(feof(src))
break;
}
return 0;
}
如果数据都是整数的话这个代码应该没问题了
追问
但不是整数 而且有240行 320列 如果要按这种方法 程序得写很长 而且 如何才能从文件的第五行开始读取数据
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以看看这个,看能解决的的问题么?
http://blog.csdn.net/dengdaiforever/article/details/7940616
http://blog.csdn.net/dengdaiforever/article/details/7940616
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询