//#include<stdio.h>
#include<fstream>
#include<iostream>
//http://www.cnblogs.com/Yogurshine/p/3677201.html
//http://www.cnblogs.com/litaozijin/p/6582048.html 文本方式写入和二进制方式写入的区别
using namespace std;
#define ERROR 1
#define OK 0
int WriteFileWithCStyle()
{
float f[6]={3.2f,-4.34f,25.04f,0.1f,50.56f,80.5f};
FILE *fp;
fp=fopen("1.txt","w");
if(NULL==fp)
{
return ERROR;
}
//fwrite(f,sizeof(float),sizeof(f)/sizeof(float),fp);//二进制
//for(int i=0;i<6;i++)
//{
// fprintf(fp,"%f ",f[i]);//ASIC
//}
//fputs("Your score of TOEFLis\r\n", fp);/*向所建文件写入一串字符*/
//fputc(':', fp); /*向所建文件写冒号:*/
//fputc(':', fp); /*向所建文件写冒号:*/
//fputc(':', fp); /*向所建文件写冒号:*/
fclose(fp);
return OK;
}
int ReadFileWithCStyle()
{
float f[6]={0.0};
FILE *fp;
fp=fopen("1.txt","r");
if(NULL == fp)
{
return ERROR;
}
/*fread(f,sizeof(float),6,fp);//二进制
for(int i=0;i<6;i++)
{
printf("f[%d] value[%2f]\r\n",i,f[i]);
}*/
/*for(int i=0;i<6;i++)
{
fscanf(fp, "%f", &f[i]);
printf("f[%d] value[%2f]\r\n",i,f[i]);
}*/
/*char buf[200];
while(fgets(buf,200,fp)!=NULL)
{
printf("%s",buf);
}*/
/*char c;
do
{
c=fgetc(fp);
printf("%c\r\n",c);
}
while(c!=EOF);*/
fseek(fp,0,SEEK_SET);
fread(f,sizeof(float),6,fp);//二进制
for(int i=0;i<6;i++)
{
printf("f[%d] value[%2f]\r\n",i,f[i]);
}
printf("返回文件位置的当前值的字节数ftell[%d]\r\n",ftell(fp));
while(!feof(fp))
{
printf("%c",fgetc(fp));
}
printf("文件结尾\r\n");
rewind(fp);
while(!feof(fp))
{
fread(f,sizeof(float),6,fp);//二进制
for(int i=0;i<6;i++)
{
printf("f[%d] value[%2f]\r\n",i,f[i]);
}
printf("%c",fgetc(fp));
}
printf("文件结尾\r\n");
fclose(fp);
return OK;
}
int ReadFromInputWithCStyle()
{
int a[10];
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
return OK;
}
int WriteFileWithCPPStyle()
{
char a[10]={'a','s','d','f','g','h','j','k','l','q'};
ofstream file1;
file1.open("2.txt",ios::out | ios::binary);//,ios::in | ios::binary
if(!file1)
{
cout<<"open error"<<endl;
return ERROR;
}
////写入文件
//for(int i=0;i<10;i++)
//{
// //a[i]=(char)i;
// cin>>a[i];
// file1<<a[i];
// printf("%c\r\n",a[i]);
//}
//写入文件
//file1.write(a,10);
int nNum = 20;
std::string str("Hello, world");
file1.write((char *)&nNum, sizeof(int));
file1.write(str.c_str(), sizeof(char) * (str.size()));
file1.close();
return OK;
}
int ReadFileWithCppStyle()
{
char b[10]={0};
char c;
fstream file2;
file2.open("2.txt");
if(!file2)
{
cout<<"open error"<<endl;
return ERROR;
}
//从文件中读取
/*for(int i=0;i<10;i++)
{
file2>>b[i];
cout<<b[i]<<" ";
}*/
//c=file2.get();
//cout<<"c:"<<c<<endl;
file2.read(b,10);
cout<<file2.gcount()<<endl;
for(int i=0;i<10;i++)
{
cout<<b[i];
}
file2.close();
}
int main()
{
WriteFileWithCStyle();
//ReadFileWithCStyle();
//WriteFileWithCPPStyle();
//ReadFileWithCppStyle();
return OK;
}