Windows 和 Linux 之间的行尾分隔符转换
End of the line delimiter conversion between Windows and Linux
我需要读取在 Windows 中创建的 txt 文件C++程序中,该文件在 Debian Linux 上编译。不幸的是,我对行尾分隔符有问题。我知道行尾指标在Linux和Windows中是不同的。因此,在 Linux 中,我的C++程序读取类似"correct_line^M"的内容。
我的问题:如何在 Linux 中正确读取我在 Windows 中创建的文件?我是否需要手动将其转换为 Linux 表示形式(我想避免它(?
谢谢。
你必须自己做。 (IMNO,一个好的图书馆可以做到自动,在filebuf
中,如果在文本模式下打开。 但是图书馆我熟悉不要。
根据你在做什么,这可能无关紧要。 任何方向的线无论如何,输入都应接受尾随空格,以及额外的0x0D字符为空白。 所以除了编辑,它通常不会事。
如果要在写入文件时禁止显示额外的0x0D(在Windows(,只需以二进制模式打开文件即可。 就此而言,当文件的可移植性是一个问题,打开二进制模式下的文件,并编写协议的任何约定需要。 (使用两个字符序列0x0D,0x0A或多或少标准,并且是大多数互联网协议指定的。 阅读时,再次,以二进制模式打开,并编写代码以接受任何通常约定:两个字符序列0x0D、0x0A或单个0x0D或单个0x0A。 (这可以通过过滤来完成流布夫。
你可以运行dos2unix
.它会转换您的文件。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- 使用std::filesystem::path在分隔符类型之间进行转换
- 将带有千(和十进制)分隔符的字符串转换为双精度
- Windows 和 Linux 之间的行尾分隔符转换
- 如何将 QByteArray 转换为带有分隔符"-"的 QString?
- 转换str字符串以用于std::getline分隔符的字符串
- 将范围之间的字符串向量转换为带分隔符的字符串(允许增强)