草庐IT

c++ - std::fstream 不创建文件

我正在尝试使用std::fstreamforio来归档,如果该文件不存在,我想创建它。std::fstreammy_streammy_stream.open("my_file_name",std::fstream::binary|std::fstream::in|std::fstream::out);if(!my_stream)std::cout我得到这个结果:“没有这样的文件或目录。”在这种情况下如何创建文件? 最佳答案 您在调用fstream::open()时指定std::fstream::in.这是known强制它需要一个现有

c++ - std::fstream 不创建文件

我正在尝试使用std::fstreamforio来归档,如果该文件不存在,我想创建它。std::fstreammy_streammy_stream.open("my_file_name",std::fstream::binary|std::fstream::in|std::fstream::out);if(!my_stream)std::cout我得到这个结果:“没有这样的文件或目录。”在这种情况下如何创建文件? 最佳答案 您在调用fstream::open()时指定std::fstream::in.这是known强制它需要一个现有

c++ - 获取 std::fstream 失败错误消息和/或异常

我正在使用fstream。有什么方法可以获取失败消息/异常?例如,如果我无法打开文件? 最佳答案 默认情况下,流不会在错误时抛出异常,它们会设置标志。您可以使用流的exception()成员函数让它们抛出异常:ifstreamifs;ifs.exceptions(std::ios::failbit);//throwiffailbitgetset理论上,你可以这样做:try{intx;ifs>>x;}catch(conststd::exception&ex){std::cerr不幸的是,C++标准没有指定抛出的异常包含任何错误消息,因

c++ - 获取 std::fstream 失败错误消息和/或异常

我正在使用fstream。有什么方法可以获取失败消息/异常?例如,如果我无法打开文件? 最佳答案 默认情况下,流不会在错误时抛出异常,它们会设置标志。您可以使用流的exception()成员函数让它们抛出异常:ifstreamifs;ifs.exceptions(std::ios::failbit);//throwiffailbitgetset理论上,你可以这样做:try{intx;ifs>>x;}catch(conststd::exception&ex){std::cerr不幸的是,C++标准没有指定抛出的异常包含任何错误消息,因

c++ - 从 fstream 获取文件名(或路径)

我可以从fstream对象中获取文件名或其路径吗?我查看了fstream的方法,没有找到任何接近它的东西。 最佳答案 不,这是不可能的,至少在符合标准的库实现中是不可能的。fstream类不存储文件名,也不提供任何检索它的函数。因此,跟踪此信息的一种方法是使用std::map作为:std::mapstream_file_table;voidf(){//whenyouopenafile,dothis:std::fstreamfile("somefile.txt");stream_file_table[&file]="somefile.

c++ - 从 fstream 获取文件名(或路径)

我可以从fstream对象中获取文件名或其路径吗?我查看了fstream的方法,没有找到任何接近它的东西。 最佳答案 不,这是不可能的,至少在符合标准的库实现中是不可能的。fstream类不存储文件名,也不提供任何检索它的函数。因此,跟踪此信息的一种方法是使用std::map作为:std::mapstream_file_table;voidf(){//whenyouopenafile,dothis:std::fstreamfile("somefile.txt");stream_file_table[&file]="somefile.

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++ - 如何检查文件是否存在并且在 C++ 中是否可读?

我有一个fstreammy_file("test.txt"),但我不知道test.txt是否存在。如果它存在,我想知道我是否也可以阅读它。该怎么做?我使用Linux。 最佳答案 我可能会选择:ifstreammy_file("test.txt");if(my_file.good()){//readaway}good方法检查流是否准备好被读取。 关于c++-如何检查文件是否存在并且在C++中是否可读?,我们在StackOverflow上找到一个类似的问题: ht

c++ - 如何检查文件是否存在并且在 C++ 中是否可读?

我有一个fstreammy_file("test.txt"),但我不知道test.txt是否存在。如果它存在,我想知道我是否也可以阅读它。该怎么做?我使用Linux。 最佳答案 我可能会选择:ifstreammy_file("test.txt");if(my_file.good()){//readaway}good方法检查流是否准备好被读取。 关于c++-如何检查文件是否存在并且在C++中是否可读?,我们在StackOverflow上找到一个类似的问题: ht