一:目的
掌握C语言文本文件读写方式;
掌握C语言二进制文件读写方式;
掌握CPP文本文件读写方式;
掌握CPP二进制文件读写方式;
二:C语言文本文件读写
1. 文本文件写入
//采用C模式对Txt进行写出
void TxtWrite_Cmode()
{
//准备数据
int index[50] ;
double x_pos[50], y_pos[50];
for(int i = 0; i < 50; i ++ )
{
index[i] = i;
x_pos[i] = rand()%1000 * 0.01 ;
y_pos[i] = rand()%2000 * 0.01;
}
//写出txt
FILE * fid = fopen("txt_out.txt","w");
if(fid == NULL)
{
printf("写出文件失败!n");
return;
}
for(int i = 0; i < 50; i ++ )
{
fprintf(fid,"%03dt%4.6lft%4.6lfn",index[i],x_pos[i],y_pos[i]);
}
fclose(fid);
}
2. 文本文件读取
//采用C模式对Txt进行读取
void TxtRead_Cmode()
{
FILE * fid = fopen("txt_out.txt","r");
if(fid == NULL)
{
printf("打开%s失败","txt_out.txt");
return;
}
vector<int> index;
vector<double> x_pos;
vector<double> y_pos;
int mode = 1;
printf("mode为1,按字符读入并输出;mode为2,按行读入输出;mode为3,知道数据格式,按行读入并输出n");
scanf("%d",&mode);
if(mode == 1)
{
//按字符读入并直接输出
char ch; //读取的字符,判断准则为ch不等于结束符EOF(end of file)
while(EOF!=(ch= fgetc(fid)))
printf("%c", ch);
}
else if(mode == 2)
{
char line[1024];
memset(line,0,1024);
while(!feof(fid))
{
fgets(line,1024,fid);
printf("%sn", line); //输出
}
}
else if(mode == 3)
{
//知道数据格式,按行读入并存储输出
int index_tmp;
double x_tmp, y_tmp;
while(!feof(fid))
{
fscanf(fid,"%d%lf%lfn",&index_tmp, &x_tmp, &y_tmp);
index.push_back(index_tmp);
x_pos.push_back(x_tmp);
y_pos.push_back(y_tmp);
}
for(int i = 0; i < index.size(); i++)
printf("%04dt%4.8lft%4.8lfn",index[i], x_pos[i], y_pos[i]);
}
fclose(fid);
}










