开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
我想要一次将整个档案读进 std::string
而不是用 while 一行一行读取再 append string
我直接使用 std::getline() 第三个参数 delim 丢入 '\0' 处理
测试过几个档案“看起来”没有问题
我想问的是会不会有特殊情形导致这个方式读出来的内容是错误的?
直接假设“档案的第一个 '\0' 字符就是整个档案的结尾”是正确的吗?
谢谢
喂入的资料(Input):
内容为 ASCII 字符,不包含其它特殊字符的文字档。
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(int argc, char** argv)
{
string str;
ifstream fin(argv[1], ios::in);
if (fin.fail())
return 1;
getline(fin, str, '\0');
fin.close();
cout << str;
return 0;
}
补充说明(Supplement):