C++ 如何从文件中读取数据存入结构体变量,并比较后选择某值删除或修改

2024-11-30 02:42:43
推荐回答(3个)
回答1:

#include
{
int count(0);

ifstream fin("路径",ios::in);
while (!fin.eof())
{
fin >> peo[count].name;

fin >> peo[count].age;
fin >> peo[count].age;

++count; //需要条件控制 不存入不需要的信息,在++count这里加条件就行了,不能保证数据不读进去,但可以用需要的数据去覆盖;

//虽然说C++比C好用,但是在文件读取方面C还是很强势的,条件读取C比C++好用可以去看看;
}
fin.close();

}

回答2:

如果你不想保存后的文件可以用记事本打开,那么就会变得很简单,比如,struct people{ char neme[5];unsigned age;char sex[3];char descri[100]} peo
假设现在保存peo到文件:write(&peo,sizeof(people));
那么读出的时候,先分配内存用于保存读进来的数据,假设分配的内存指针为p;内存的大小就是文件长度,假设为len;则读入内存为read(p,len);
文件长度/sizeof(people)=文件中存储信息对应的人数,假设为n,
则,for(int i=0;i {
people *p=(people*)(p+i*sizeof(people));//p指针所指向的结构就是第i个人的信息
}
如果需要修改,只需对p指针进行操作。

回答3:

opendir(path)

std::ifstream inFile(filename.c_str(), std::ios_base::in);

inFile.exceptions(ios::failbit | ios::badbit);
inFile.ignore(numeric_limits::max(), '\n');
while(false == inFile.eof())

inFile.getline(chBuf, BUF_MAX);

这样文件内容就到chBuf里了,并且是一行一行读取,按空读取单个参数。

具体的 自己找下std::ifstream方法吧