Je suis en train de créer un programme d'inventaire. Nécessité d'inclure ios :: app pour ne pas surcharger les données du fichier inventory.txt comme le fait ios :: out, mais lorsque j'ai ajouté les données de l'application ios :: read a été corrompue/corrompue.C++ fstream lecture du fichier donnant des ordures
Je pense que le problème se résume à cette ligne: outfile.open ("inventory.txt", ios :: out | ios: app | ios :: binary);
J'ai collé la fonction me donner des problèmes ci-dessous.
Merci!
void add() {
Inventory Item;
int recnum;
ofstream outfile;
// opening file
outfile.open("inventory.txt", ios::out | ios:app | ios::binary);
if (outfile.fail())
cout << "\nFile failed to open" << endl;
cout << "\nPlease enter the record ID to be added (will overwrite duplicates) : ";
cin >> recnum;
cout << "\n" << recnum << " has been set as the record ID for this item." << endl;
cout << "Please enter item description in 50 characters or less : ";
cin.ignore();
cin.getline(Item.description, size);
// do-whiles below are for looping for input validation
do {
cout << "Please enter the number of items on hand : ";
cin >> Item.quantity;
if (Item.quantity < 0)
cout << "Please enter a valid number." << endl;
} while (Item.quantity < 0);
do {
cout << "Please enter the wholesale price for this item : ";
cin >> Item.wholesale;
if (Item.wholesale < 0.01)
cout << "Please enter a valid number." << endl;
} while (Item.wholesale < 0.01);
do {
cout << "Please enter the retail price for this item : ";
cin >> Item.retail;
if (Item.retail < 0.01)
cout << "Please enter a valid number." << endl;
} while (Item.retail < 0.01);
// couldn't figure out how to perform input validation for date
cout << "Please enter the date this item was added (format: mm/dd/yyyy) : ";
cin.ignore();
cin.getline(Item.dateadded, datesize);
// finding position in file, writing to file, closing file
outfile.seekp(recnum*sizeof(Item), ios::beg);
outfile.write(reinterpret_cast<char *>(&Item), sizeof(Item));
outfile.close();
}
Votre utilisation ofstream .... pas ifstream .... –
Votre titre dit « lire le fichier » votre code écrit à un !? En outre, quelle est la déclaration de 'Item', j'ai la suspicion furtive thats ce n'est pas un POD à quel point vous ne pouvez pas l'écrire dans un fichier comme vous le faites maintenant. – Borgleader
Hé les gars, Ouais mais le problème que je pense se produit lorsque j'écris les données. J'ai une fonction display() que j'appelle après cela et elle commence seulement à afficher des ordures après avoir ajouté ios :: app – Kubie