Lecture d'un fichier texte - fopen vs. ifstream
Googler le fichier d'entrée, j'ai trouvé deux façons de saisie de texte à partir d'un fichier fopen et ifstream. Voici les deux extraits. J'ai un fichier texte composé d'une ligne avec un entier, j'ai besoin de lire dans. Dois-je utiliser fopen ou ifstream?
EXTRAIT 1 - FOPEN
FILE * pFile = fopen ("myfile.txt" , "r");
char mystring [100];
if (pFile == NULL)
{
perror ("Error opening file");
}
else
{
fgets (mystring , 100 , pFile);
puts (mystring);
fclose (pFile);
}
EXTRAIT 2 - IFSTREAM
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( myfile.good() )
{
getline (myfile,line);
cout << line << endl;
}
myfile.close();
}
else
{
cout << "Unable to open file";
}
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Je préfère ifstream parce que c'est un peu plus modulaire que fopen. Supposons que vous voulez le code qui lit le flux de lire à partir d'une chaîne de flux, ou de toute autre istream. Vous pouvez l'écrire comme ceci:
Maintenant, vous pouvez tester
stream_reader
sans l'aide d'un fichier réel, ou l'utiliser pour lire à partir d'autres types d'entrée. C'est beaucoup plus difficile avec fopen.Puisque c'est marqué que C++, je dirai ifstream. Si elle a été étiquetée comme C, j'irais avec fopen 😛