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

假设.dat后缀格式文件为in.dat,其中存的是数字,每行一个数,怎么将其读出到一个数组中?

程序读取文件只区分是二进制文件还是文本文件,对文件后缀不感冒(也就是为什么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++]);//格式化读取字符串中的数字
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-13
#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 判断文件结束。
相似回答