我做过一些类似于以下的事情:
FILE* a = fopen("a.txt", "w");
const char* data = "abc123";
fwrite(data, 6, 1, a);
fclose(a);
在生成的文本文件中,它会显示“abc123”,就像预期的那样。但是接下来我做了以下操作:
//this time it is "wb" not just "w"
FILE* a = fopen("a.txt", "wb");
const char* data = "abc123";
fwrite(data, 6, 1, a);
fclose(a);
并且获得完全相同的结果。如果我使用二进制或正常模式读取文件,也会给我相同的结果。所以我的问题是,在使用或不使用二进制模式下打开文件之间有什么区别。
我在哪里阅读有关fopen模式的信息:http://www.cplusplus.com/reference/cstdio/fopen/
std::ifstream
和std::ofstream
代替C库吗?这更符合惯用法,并确保您无需担心是否需要调用close,无论是否抛出异常(除了提供其他好的抽象)。 - Mark