c++中ifstream一次读取整个文件

2023-05-16

c++中一次读取整个文件的内容的方法:

1. 读取至char*的情况

[cpp]  view plain copy
  1. std::ifstream t;  
  2. int length;  
  3. t.open("file.txt");      // open input file  
  4. t.seekg(0, std::ios::end);    // go to the end  
  5. length = t.tellg();           // report location (this is the length)  
  6. t.seekg(0, std::ios::beg);    // go back to the beginning  
  7. buffer = new char[length];    // allocate memory for a buffer of appropriate dimension  
  8. t.read(buffer, length);       // read the whole file into the buffer  
  9. t.close();                    // close file handle  
  10.   
  11. // ... do stuff with buffer here ...  

2. 读取至std::string的情况

第一种方法:

[cpp]  view plain copy
  1. #include <string>  
  2. #include <fstream>  
  3. #include <streambuf>  
  4.   
  5. std::ifstream t("file.txt");  
  6. std::string str((std::istreambuf_iterator<char>(t)),  
  7.                  std::istreambuf_iterator<char>());  

第二种方法:

[cpp]  view plain copy
  1. #include <string>  
  2. #include <fstream>  
  3. #include <sstream>  
  4. std::ifstream t("file.txt");  
  5. std::stringstream buffer;  
  6. buffer << t.rdbuf();  
  7. std::string contents(buffer.str());  

reference:  http://stackoverflow.com/questions/2602013/read-whole-ascii-file-into-c-stdstring
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++中ifstream一次读取整个文件 的相关文章

  • ifstream文件是否存在的判断

    在打开文件时常常需要判断文件是否存在 xff0c 可用如下代码 1 ifstream inFile filename ios in 2 3 if inFile is open 4 5 return 6
  • 如何在C++中读取格式化数据?

    我已将数据格式化如下 Words 5 AnotherWord 4 SomeWord 6 它在一个文本文件中 我使用 ifstream 来读取它 但如何分离数字和单词 该单词仅由字母组成 单词和数字之间会有一定的空格或制表符 不确定有多少 假
  • C++ ifstreamfailbit 和 badbit

    的情况下ifstream在C 中 在什么条件下failbit and badbit标志设置 根据cplusplus com failbit当错误与操作本身的内部逻辑相关时 通常由输入操作设置 因此流上的其他操作也是可能的 尽管badbit通
  • 如何在 C++ 中从二进制文件中删除部分

    我想使用 C 从二进制文件中删除部分 二进制文件大约有 5 10 MB 左右 我想做的事 搜索 ANSI 字符串 something 一旦找到这个字符串 我想删除接下来的n个字节 例如下面的1MB数据 我想删除这些字符 而不是用 NULL
  • C++:为什么 cout 打印回车符以及使用 ifstream 从文件读取的字符串?

    我正在尝试读取文件capitals内容如下 Tokyo 33200000 New York 17800000 Sao Paulo 17700000 Seoul 17500000 Mexico City 17400000 我用来打印文件内容的
  • ifstream 无法打开文件

    我正在尝试打开一个文件 以便从中读取内容 include
  • 我无法让程序正确读取输入文件中的值(二维数组)

    我的程序错误地读取了该值 当我尝试从此文件中获取值时 存在同样的问题 14 14 8 0 4 16 2 0 1 7 7 4 7 0 23 0 44 290 350 16 16 10 0 5 17 2 2 1 8 8 5 4 0 27 0 5
  • 将 ifstream 中的一行读入字符串变量

    在下面的代码中 include
  • 将 ifstream 转换为 bool 与使用 ifstream::is_open() 之间的区别

    也许是一个虚拟问题 但我需要一个明确的答案 这些函数的返回有什么区别吗 int FileExists const std string filename ifstream file filename c str return file in
  • 如何使用 std::ifstream 读取 UTF-8 编码的文本文件?

    我很难解析 xml 文件 文件以 UTF 8 编码保存 普通 ASCII 可以正确读取 但韩文字符则不能 所以我做了一个简单的程序来读取UTF 8文本文件并打印内容 文本文件 test txt ABC 测试程序 include
  • std::ifstream 明显比 FILE 慢吗?

    我被告知我的库比应有的速度慢 解析特定文件 文本文件 大小 326 kb 的速度慢了 30 倍以上 用户建议这可能是我正在使用std ifstream 大概不是FILE 我不想盲目重写 所以我想我应该先检查这里 因为我的猜测是瓶颈在其他地方
  • MSVC++7.1 中的 ifstream.read() 与 ifstream.readsome()

    我只是采用了在 Linux 下开发的文件阅读器的一些旧代码 并尝试在使用 MSVC 7 1 编译的 Windows 项目中使用相同的代码 代码编译没有任何问题 但根据 Windows 上的文件阅读器 该文件似乎是空的 我跟踪问题到 ifst
  • ifstream read 和 fread 不返回相同的数据,C++

    我的问题是 在文件描述符上使用 ifstream read 和 fread 似乎不会产生相同的结果 我打开一个文件并使用 ifstream open read 以 ios binary 模式读取其输入 然后我将此缓冲区写入文件 输出1 接下
  • 如何从 fstream 中准确读取 128 个字节到字符串对象中? [复制]

    这个问题在这里已经有答案了 如何从 fstream 中准确读取 128 个字节到字符串对象中 我编写了一些代码来读取文件的前 128 个字节并打印它 然后读取文件的最后 128 个字节并打印它 最后一部分有效 因为您可以轻松迭代到 EOF
  • 传递对 std::ifstream 的引用作为参数

    我正在尝试编写一个函数ifstream 争论 void word transform ifstream infile infile content txt etc 这给了我一个错误 类型 ifstream 又名 basic ifstream
  • 如何用unicode文件名c++读取二进制文件?

    在我正在从事的项目中 我处理了相当多的字符串操作 字符串从二进制文件及其编码 可以是单字节或双字节 中读取 本质上 我将字符串值读取为vector
  • c++ 打开文件的问题

    必须是一个简单的答案 但我不知所措 这是返回错误的代码 我尝试过带或不带起始斜杠 我不知道完整路径 我希望它是相对于exe的 这就是相对路径 我试图逃避斜线 我的问题是当文件存在时我收到 打开文件时出错 为什么它失败了 ifstream m
  • 如何从文本文件读取数据并将其推回向量?

    我有一个文本文件 test txt 它存储了我的数据 如下所示 每个分隔符字段之间有一个空格 代码 名称 Coy 045 Ted Coy1 054 Red Coy2 我如何从文件中读取这些数据并将其插入向量中 vector
  • 将文本文件读入 char 数组。 C++ ifstream

    我试图将整个 file txt 读入字符数组 但遇到一些问题 请提出建议 ifstream infile infile open file txt char getdata 10000 while infile eof infile get
  • 使用文本文件中的 var

    我的问题是 我想使用由从文本文件中在 carac 中接收的关键字启动的函数 并在该函数中使用 carac 之后的字符串 该函数位于包含的其他文件中 但我不知道该怎么做 for std string carac fichier gt gt c

随机推荐