首先把目标明确,结构体是表达数据的存放方式,文件也有文件自己的数据格式化存放方式,要从文件读取数据到结构体中,必须要保证这个文件的数据格式化存放方式与内存中的结构体一致,这样才按照你所说的直接读取数据到结构体里面
首席需要用到fstream头文件,然后用ifstream就可以了.我给lz写一个例子,lz看一下就明白了:strcut stocktype{string personaddress;string personcity;string personstate;int personzip;};void addresstype :: getdata(){ifstream infile;int index;string
直接给你个参考:(你的文件必须在当前的目录下,名为test.txt)#include#includeusingnamespacestd;structTEST{charname[10];intscore[3];}test[10];intmain(){ifstreamin("test.txt");intn=0;while(!in.eof()){in>>test[n].name;in>>test[n].score[0];in>>test[n].score[1];in>>test[n].score[2];n++;}in.close();for(inti=0;i
char buffer[1024]; ifstream infile("xxx.txt",ios::in); if(!infile) { cerr<<"open file failed."<<endl; exit(0); } infile.getline(buffer,1023,'\n'); 取得此一行buffer信息,利用strtok函数进行解析,然后相对应放入你构建的结构体中去.
你这数据最好是由程序代码格式化地生成,然后你才能用相同的数据格式去读.你要是用手动生成的话,以这样的方式去赋值不出错才怪.string的长度你知道?你可以定义如下的数据格式typedef struct _PROPERTY{ char szName[32]; char
取决于文件中数据的存储方式.1 如果文件中存储的方式为二进制形式数据:需要使用fread(C语言风格)或ifsteam的read成员函数(C++风格.)从文件中读取结构体数据到对应的结构体指针上.如 struct test { int a; }; struct test t; fread(&t, 1,sizeof(t
取决于txt文件的存储格式.如果txt存储的是文本,也就是人可读的, 那么根据存储形式, 用fscanf格式化读取.如果存储的是二进制数据,那么用fread逐个读取.
如果你不想保存后的文件可以用记事本打开,那么就会变得很简单,比如,struct people{ char neme[5];unsigned age;char sex[3];char descri[100]} peo 假设现在保存peo到文件:write(&peo,sizeof(people)); 那么读出的时候,先分配内存用于保存
#include<iostream>#include<fstream>using namespace std;struct student{ char id[10]; float ps; float qz; float qm;};int main(){ ifstream fin("c:\\test.txt"); char tmp[32]; fin>>tmp; cout<<tmp<<" "; fin>>tmp; cout<<tmp<<" "; fin>>tmp; cout<<tmp<
#include#define N 60#define M 1000struct TextData { int LocalLab; char FData[3][N];}*m_text;int main() { int i,n = 0; struct TextData a[M]; // 先声明一个结构数组 FILE *infp = fopen("data.txt","rt"); // 假定数据文件名为data.txt if(infp == NULL) { printf("不能打开数据文件.\n"); return 1; } while(n 评论0 0 0