C++用什么方法可以读取文件.dat后缀格式的文件?

假设.dat后缀格式文件为in.dat,其中存的是数字,每行一个数,怎么将其读出到一个数组中?... 假设.dat后缀格式文件为in.dat,其中存的是数字,每行一个数,怎么将其读出到一个数组中? 展开
 我来答
lkjhggv
2012-06-13 · TA获得超过3063个赞
知道大有可为答主
回答量:1550
采纳率:66%
帮助的人:1313万
展开全部
程序读取文件只区分是二进制文件还是文本文件,对文件后缀不感冒(也就是为什么UNIX系统的文件不必有后缀名,文件后缀只是windows系统必须的东西)

C++读取文件可以用文件流
#include <fstream>
#include <string>
#include <stdlib.h>
using namespace std;

ifstream ifs("filename.dat");//以读方式打开文件
string s;//接受字符串
const size_t size_of_array = 100;//定义数组容量
int array[size_of_array];
size_t i = 0;//数组下标
while(ifs >> s)//每次读取一个字符串到s中(遇到空白字符返回,包括空格、换行、tab),因为每行一个数,所以会读取一行,读取到最后,流遇到文件结束符,流状态无效退出循环
{
sscanf(s.c_str(), "%d", &array[i++]);//格式化读取字符串中的数字
}
金色潜鸟
2012-06-13 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5696万
展开全部
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fin;
double *x;
int i,n=0;
if ((fin =fopen("in.dat","r"))==NULL){
printf("open in.dat error !\n");
exit(0);
}

// how many data does the file have:
while(1){
if ( fscanf(fin,"%*lf") ==EOF ) break;
n++;
}
rewind(fin);
// dynamic allocation:
x = (double *) malloc(n * sizeof(double));
// read data
for (i=0;i<n;i++) fscanf(fin,"%lf", &x[i]);
fclose(fin);
// output data
for (i=0;i<n;i++) {
if (i%5==0) printf("\n");
printf("%lf ",x[i]);
}
exit(0);
}
==
c++ 类似,用 .eof 判断文件结束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式