Déplacé la question ici. Supposons que je veux stocker 1 000 000 000 entiers et que je ne puisse pas utiliser ma mémoire. Je voudrais utiliser un fichier (qui peut facilement gérer autant de données). Comment puis-je le laisser lire et écrire et en même temps. En utilisant fstream file("file.txt', ios::out | ios::in);
ne crée pas un fichier, en premier lieu. Mais en supposant que le fichier existe, je ne peux pas utiliser pour lire et écrire simultanément. Quel est ce que je veux dire: Que le contenu du fichier soit 111111
Ensuite, si je lance: -Lire et écrire simultanément des fichiers?
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
fstream file("file.txt",ios:in|ios::out);
char x;
while(file>>x)
{
file<<'0';
}
return 0;
}
pas Si le contenu du fichier maintenant 101010
? Lire un caractère, puis écraser le suivant avec 0? Ou alors, tout le contenu a été lu immédiatement dans un tampon, s'il n'y avait pas au moins un 0 dans le fichier? 1111110
? Mais le contenu reste inchangé. S'il vous plaît, expliquez. Merci.
Question intéressante. Quand je mets 'file.tellg(); file.tellp(); 'avant et après' file << '0'; ', j'obtiens en effet' 101010' (découvert accidentellement avec la sortie de débogage). Cela suggère un comportement indéfini dans le programme? Bug dans la mise en œuvre de fstream? – UncleBens