读取文本文件的任何头文件与平台无关
Any header file to read text files platform-independent?
使用c++编写跨平台项目,必须以非常简单的格式读取输入文件:
MESSAGE_NAME "Message text"
ANOTHER_GOOD_MESSAGE "This is another message"
…
我想知道是否有人有或知道一个库(头文件)来处理可能是Windows格式或Linux格式的输入。
#include <fstream>
怎么了?
当然,可以想象Windows的实现会失败识别Unix的行尾(但我还没有见过不识别的),或者Unix实现在额外的'r'
—my方面存在问题通常的解决方案是以二进制模式读取文件,并删除任何文件手动'r'
。(我读了Line
类,这是重载的operator>>
调用getline
,然后删除任何尾随的'r'
)
最适合你需要的两个头文件是:
#include <fstream>
或
#include <cstdio>
一般首选 <fstream>
。如果,正如您的评论所指出的,<fstream>
不可用,那么<cstdio>
应该提供一个有用的替代方案。
具体来说,您需要考虑fopen()
和fscanf()
。
相关文章:
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- 如何基于平台在制作文件中制作if语句?
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 组织项目的多平台和易于使用的文件
- 如何打开和读取16位.raw文件Vc++(Wince 平台)
- 程序'main.exe'运行失败:指定的可执行文件不是此操作系统平台的有效应用程序
- 在没有节点GYP的目标平台上编译C/C 文件
- 如何从平台SDK明确包含标头文件
- 如果给定正确的运行时库,x86 可执行文件是否可以在任何 x86 平台上运行
- 如何实现独立于平台的异步文件写入
- C++:如何保存独立于平台的二进制文件
- 在任何平台上执行任何Qt5应用程序的重要dll文件是什么(运行时文件dll)
- VS2010在不同平台上生成的可执行文件是否应该有所不同
- 部署Qt-dll文件-找不到windows插件,尽管平台/qwindows.dll存在,因此存在libEGL和libGL
- VS2013 C++:忽略平台包含文件夹
- Visual Studio 2013 在使用 VS 2010 平台工具集时找不到头文件
- C++标准库在任何时候都包括每个平台的原生头文件吗
- 包括具有一个头文件和独立源文件的特定于平台的库
- 对于多个平台,头文件是相同的还是不同的
- 如何在Windows平台中获取远程Windows服务器的共享文件夹的文件列表