c++读写文件

来源:互联网 发布:网络视频服务器参数 编辑:程序博客网 时间:2024/06/09 17:28
#include <iostream>#include <string>#include <fstream>using namespace std;int main(int argc,char* argv[]){struct User{int id;int age;char name[10];} ;User user;memcpy(&user,0,0);user.id=1;strcpy(user.name,"hehekkkkkk");user.age=21;cout<<"id="<<user.id<<",name="<<user.name<<",age="<<user.age<<endl;User *my=new User();my->id=2;strcpy(my->name,"gril");my->age=22;cout<<"id="<<my->id<<",name="<<my->name<<",age="<<my->age<<endl;FILE *fp=fopen("test.bat","wb");if(fp==NULL){cout<<"open error"<<endl;return -1;}//cout<<sizeof(&user)<<endl;int len=strlen(user.name);//cout<<len<<endl;fwrite((int*)&len,4,1,fp);fwrite((char*)&user,sizeof(&user.id)+sizeof(&user.age)+strlen(user.name),1,fp);fclose(fp);FILE *read=fopen("test.bat","rb");if(read==NULL){cout<<"open error"<<endl;return -1;}User myUser;User *puser=new User;int mylen;fseek(fp,0,0);fread(&mylen,4,1,fp);memset(puser,0,0);fread((int*)puser,sizeof(puser->id)+sizeof(puser->age)+mylen,1,fp);char *name=(char*)malloc(mylen+1);memcpy(name,puser->name,mylen);name+='\0';string str=name;str=str.substr(0,mylen);cout<<"id="<<puser->id<<",name="<<str.c_str()<<",age="<<puser->age<<endl;fclose(read);//FILE *fp1=fopen("cpp.txt","w+");if(fp1==NULL){printf("open error!");return -1;}fprintf(fp1,"%d",user.id);fprintf(fp1,"%s",user.name+'\0');fprintf(fp1,"%d",user.age);fclose(fp1);FILE *fp1_read=fopen("cpp.txt","r");if(fp1==NULL){printf("open error!");return -1;}User cpp_user;fscanf(fp1_read,"%d",&cpp_user.id);fscanf(fp1_read,"%s",&cpp_user.name);fscanf(fp1_read,"%d",&cpp_user.age);cout<<"id="<<cpp_user.id<<",name="<<cpp_user.name<<",age="<<cpp_user.age<<endl;fclose(fp1_read);//c++读写文件ifstream infh;////ofstream out;char* buffer;infh.open("d:\Android.mk",ios::in);//ios::out,ios::binary,ios::if(!infh){cout<<"不能够打开文件"<<endl;return -1;}//infh.getline()//获取文件长度infh.seekg(0,ios::end);int length=infh.tellg();infh.seekg(0,ios::beg);buffer=new char[length];infh.read(buffer,length);for(int i=0;i<length;i++){cout<<buffer[i];}cout<<endl;infh.clear();infh.close();delete[] buffer;getchar();return 0;}

原创粉丝点击