C C++基本输入输出
//#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; }