草庐IT

Ifstream

全部标签

c++ - ifstream 的 eof() 是如何工作的?

#include#includeintmain(){std::fstreaminf("ex.txt",std::ios::in);while(!inf.eof()){std::cout>c){std::cout我真的对eof()函数感到困惑。假设我ex.txt的内容是:abc在使用eof()读取时,它总是读取一个额外的字符并显示-1。但是inf>>c给出了正确的输出,即“abc”?谁能帮我解释一下? 最佳答案 -1是get表示您已到达文件末尾。使用std::char_traits::eof()进行比较(或std::istream::

c++ - ifstream 的 eof() 是如何工作的?

#include#includeintmain(){std::fstreaminf("ex.txt",std::ios::in);while(!inf.eof()){std::cout>c){std::cout我真的对eof()函数感到困惑。假设我ex.txt的内容是:abc在使用eof()读取时,它总是读取一个额外的字符并显示-1。但是inf>>c给出了正确的输出,即“abc”?谁能帮我解释一下? 最佳答案 -1是get表示您已到达文件末尾。使用std::char_traits::eof()进行比较(或std::istream::

c++ - 如何使用 unicode 文件名打开 std::fstream(ofstream 或 ifstream)?

您不会想象像使用C++标准库为Windows应用程序打开文件这样基本的事情是很棘手的……但看起来确实如此。这里的Unicode是指UTF-8,但我可以转换为UTF-16或其他格式,重点是从Unicode文件名中获取一个ofstream实例。在我破解自己的解决方案之前,这里有首选路线吗?尤其是跨平台的? 最佳答案 C++标准库不支持Unicode。char和wchar_t不需要是Unicode编码。在Windows上,wchar_t是UTF-16,但标准库中不直接支持UTF-8文件名(Windows上的char数据类型不是Unicod

c++ - 如何使用 unicode 文件名打开 std::fstream(ofstream 或 ifstream)?

您不会想象像使用C++标准库为Windows应用程序打开文件这样基本的事情是很棘手的……但看起来确实如此。这里的Unicode是指UTF-8,但我可以转换为UTF-16或其他格式,重点是从Unicode文件名中获取一个ofstream实例。在我破解自己的解决方案之前,这里有首选路线吗?尤其是跨平台的? 最佳答案 C++标准库不支持Unicode。char和wchar_t不需要是Unicode编码。在Windows上,wchar_t是UTF-16,但标准库中不直接支持UTF-8文件名(Windows上的char数据类型不是Unicod

C++ ifstream 失败位和坏位

如果是C++中的ifstream,failbit和badbit标志是在什么条件下设置的? 最佳答案 根据cplusplus.com:failbitisgenerallysetbyaninputoperationwhentheerrorwasrelatedtotheinternallogicoftheoperationitself,sootheroperationsonthestreammaybepossible.Whilebadbitisgenerallysetwhentheerrorinvolvesthelossofintegri

C++ ifstream 失败位和坏位

如果是C++中的ifstream,failbit和badbit标志是在什么条件下设置的? 最佳答案 根据cplusplus.com:failbitisgenerallysetbyaninputoperationwhentheerrorwasrelatedtotheinternallogicoftheoperationitself,sootheroperationsonthestreammaybepossible.Whilebadbitisgenerallysetwhentheerrorinvolvesthelossofintegri

c++ - ifstream 打开失败时如何获取错误消息

ifstreamf;f.open(fileName);if(f.fail()){//Ineederrormessagehere,like"Filenotfound"etc.-//thereasonofthefailure}如何获取字符串形式的错误信息? 最佳答案 每个失败的系统调用都会更新errno值。因此,您可以通过以下方式获得更多关于当ifstream打开失败时会发生什么的信息:cerr但是,由于每个系统调用都会更新全局errno值,如果另一个系统调用在f.open的执行和errno的使用。在符合POSIX标准的系统上:errn

c++ - ifstream 打开失败时如何获取错误消息

ifstreamf;f.open(fileName);if(f.fail()){//Ineederrormessagehere,like"Filenotfound"etc.-//thereasonofthefailure}如何获取字符串形式的错误信息? 最佳答案 每个失败的系统调用都会更新errno值。因此,您可以通过以下方式获得更多关于当ifstream打开失败时会发生什么的信息:cerr但是,由于每个系统调用都会更新全局errno值,如果另一个系统调用在f.open的执行和errno的使用。在符合POSIX标准的系统上:errn