Reputation: 5
I have a program which writes to text file.
Example in my textfile:
4
QA131 100 100 100 100
QA132 100 100 100 100
QA133 100 100 100 100
QA134 100 100 100 100
I want to write a new line which store the record and the 4 will turn into 5.
What is the method used to write to the file?
Here is my code:
void inputRecord()
{
Product product[101];
char FILENAME[20];
cout<<"Enter the file you want to open: ";
cin>>FILENAME;
ifstream read(FILENAME);
if (read.is_open())
{
while(read.good())
{
read>>product[0].line;
for(int i =0;i< product[0].line;i++)
{
read >>product[i].PartNumber
>>product[i].initialQuantity
>>product[i].quantitySold
>>product[i].minQuantity
>>product[i].price;
}
product[0].line+=1;
}
read.close();
}
ofstream write(FILENAME);
write<<product[0].line << endl;
for(int i =0;i< product[0].line;i++)
{
write << product[i].PartNumber << '\t'
<< product[i].initialQuantity << '\t'
<< product[i].quantitySold << '\t'
<< product[i].minQuantity << '\t'
<< product[i].price << '\t' << endl;
}
write.close();
cout << "Inventory added successfully!" << endl;
system("pause");
system("CLS");
}
I cannot write the item to the file.
Upvotes: 0
Views: 895
Reputation: 398
you could just use fseek to solve your problem.
Here's a really simple example based this C++ reference example
#include<cstdio>
int main(void) {
FILE * pFile;
pFile = fopen ( "test.txt" , "wb" );
fprintf(pFile,"00000\n"); // watch spacing
for (int i=1; i<11; i++) {
fprintf (pFile, "%d. This line a line of stuff.\n",i);
}
fseek(pFile , 0 , SEEK_SET );
fprintf(pFile,"10 \n");
fclose(pFile);
return 0;
}
Upvotes: 2