C++ 读取文件内容,存储在数组中,向数组添加更多内容,然后将新数组存储在文件C++;
我有以下文件(customers.txt): 问题:从用户处获取新的客户信息并将其存储在文件中,而不删除旧记录 我需要读取前面的内容并将它们存储在相应的数组中,我使用了以下方法:C++ 读取文件内容,存储在数组中,向数组添加更多内容,然后将新数组存储在文件C++;,c++,string,file,save,add,C++,String,File,Save,Add,我有以下文件(customers.txt): 问题:从用户处获取新的客户信息并将其存储在文件中,而不删除旧记录 我需要读取前面的内容并将它们存储在相应的数组中,我使用了以下方法: void readFile() { ifstream infile; infile.open("D:\\customers.txt"); for(int i = 0; infile; i++) { infile >> ID[i] >> names[i] >> address
void readFile()
{
ifstream infile;
infile.open("D:\\customers.txt");
for(int i = 0; infile; i++)
{
infile >> ID[i] >> names[i] >> addresses[i]>>tn[i];
infile.peek();
numC++;
}
infile.close();
}
(numC是客户数,最初设置为0)
然后,我需要添加一个新客户。我是这样做的:
void add()
{
for(int i=numC; i<100;i++)
{
cout<<"Enter your ID (or -1 to quit)"<<endl;
cin>>ID[i];
if(ID[i]!=-1)
{
cout<<"enter your name"<<endl;
cin>>names[i];
cout<<"enter your address"<<endl;
cin>>addresses[i];
cout<<"enter your telephone number"<<endl;
cin>>tn[i];
}
else
break;
}
saveFile();
}
为什么会发生这种情况?如何将其修复到存储用户 每次在add()例程中添加用户时,numC都需要递增 另外,您可能会在新文件的结尾处得到零,因为原始文件在第二行之后有一个返回行,所以您的read函数尝试在第三行中读取,即使它是空的
void add()
{
for(int i=numC; i<100;i++)
{
cout<<"Enter your ID (or -1 to quit)"<<endl;
cin>>ID[i];
if(ID[i]!=-1)
{
cout<<"enter your name"<<endl;
cin>>names[i];
cout<<"enter your address"<<endl;
cin>>addresses[i];
cout<<"enter your telephone number"<<endl;
cin>>tn[i];
}
else
break;
}
saveFile();
}
void saveFile()
{
ofstream outfile;
outfile.open("D:\\customers.txt");
for(int i=0; i<numC; i++)
outfile << ID[i] << "\t" << names[i]<< "\t"<<addresses[i]<< "\t"<<tn[i]<<endl;
outfile.close();
}
1 esra doha 017987
2 abdulla wakra 023456
0 0 0 0