Comment utiliser différents modes ifstream en c ++?
Question
- Selon la référence, si j'utilise
ifstream infile ( "test.txt" , ifstream::in );
cela fonctionneraAllow input operations on the stream.
Mais quels sont certains des exemples des & "; opérations d'entrée &"?? - Est-ce que
ifstream infile ( "test.txt" , ifstream::in | ifstream::binary );
est la bonne syntaxe pour utiliser plusieurs drapeaux? - Cela changera-t-il si je change de
ifstream::
àiso::
?
Merci
La solution
- Selon la référence, si j'utilise ifstream infile (& "test.txt &"), ifstream :: in); il permettra l'entrée opérations sur le flux. Mais quels sont quelques exemples de l'entrée & ";" opérations & ";
Lire dans un fichier ce qui voudrait dire tout ce qu'un flux d'entrée peut supporter. Voir istream
fonctions membres. En règle générale, vous pouvez effectuer des lectures formatées (avec >>
) et non formatées (avec read
). N'oubliez pas que ifstream
est une spécialisation du basic_ifstream
modèle pour le type char
. Selon vos besoins, pour lire un fichier codé UTF-16, vous devrez peut-être utiliser une spécialisation différente (wifstream
) ou même utiliser des paramètres régionaux spéciaux (lisez this pour en savoir plus sur les paramètres régionaux).
- Is ifstream infile (" test.txt " ifstream :: in | ifstream :: binary); la bonne syntaxe pour utiliser plusieurs drapeaux?
Oui.
- Est-ce que cela changera quelque chose si je change ifstream :: en iso ::?
Non.
Autres conseils
Les opérations de flux sont extraction <<
et insertion >>
. Lorsque vous faites ce qui suit en supposant
file
est de fstream
type:
file << 5 << 6.5 << "Hello World!"; // insertion of data (output)
file >> x >> y >> str; // exaction of data (input)
Vous pouvez également utiliser le stream
comme binary stream
. Dans ce cas, cela ne ressemble pas vraiment à un & Quot; ifstream
& Quot; des données, mais cela vous donne un accès aléatoire aux données. Dans certains cas, vous ne pouvez pas utiliser le mode binaire, en particulier si vos données ne sont pas disponibles comme un flux réseau. L'insertion et l'extraction sont les deux opérations principales sur les flux.
input stream
est créé en tant que std::ios::in
par défaut. Donc, ios
est redondant dans ce cas. Vous utilisez les drapeaux correctement.
tous les flux héritent de <=>. Les indicateurs sont donc disponibles aux deux endroits. Vous pouvez les récupérer directement à partir de <=> ou à partir de <=>.
.