Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否可以使用ifstream在linux中读取dos文件_C++ - Fatal编程技术网

C++ 是否可以使用ifstream在linux中读取dos文件

C++ 是否可以使用ifstream在linux中读取dos文件,c++,C++,当我使用std::ifstream打开一个以dos格式编写的文件时,ifstream似乎无法正确打开该文件,因为在之后调用流上的good()时失败(返回false)。我试着以二进制模式以及默认的“in”模式打开文件,但两种模式都不起作用。如果我使用dos2unix将文件转换为unix,则一切正常 这样做的目的是,我希望能够读取文件并对其进行解析,但我不能保证该文件没有以dos(Windows)或unix(Linux)格式保存。理想情况下,我希望能够使用ifstream 有什么建议吗 谢谢 文件格

当我使用std::ifstream打开一个以dos格式编写的文件时,ifstream似乎无法正确打开该文件,因为在之后调用流上的good()时失败(返回false)。我试着以二进制模式以及默认的“in”模式打开文件,但两种模式都不起作用。如果我使用dos2unix将文件转换为unix,则一切正常

这样做的目的是,我希望能够读取文件并对其进行解析,但我不能保证该文件没有以dos(Windows)或unix(Linux)格式保存。理想情况下,我希望能够使用ifstream

有什么建议吗


谢谢

文件格式不会影响您打开文件的能力


更有可能是您的路径不正确。

GCC不太可能做这样的事情

我建议执行
my_ifstream.exceptions(ios::failbit | ios::badbit),然后打开它,并在调试器中运行。然后你就可以看到哪里不再好了


此外,以二进制模式打开文件
(ios::in | ios::binary)
应该可以消除实现对文件内容进行选择的可能性。

这篇文章是关于Ctrl+M字符的吗?这篇文章还提到使用dos2unix可以很好地工作。所以我想这和路径无关。突出显示后适当的LycTRL-M字符不会影响ifstream的工作方式。更可能的情况是,文件名已从坏名称更改为好名称。文件系统区分大小写吗?@Chubsdad:你为什么要编辑这篇文章,使常规句子的宽度固定?固定宽度格式对代码片段和相关文本很有用(主要是针对代码片段和相关文本),而不是随机句子…@James McNellis:我想突出显示与“dos2unix”相关的部分。我应该怎么做呢?为什么不发布你用来打开文件并检查流状态的代码呢?