C++如何将txt文件含空格的全文内容读取存入string字符串变量
C++读取txt整行内容(含空格)到string变量的实现方法
问题原因
你之前读取遇到空格自动终止,是因为使用了ifstream对象 >> string变量的流提取写法,该运算符默认将空格、换行、制表符等空白符作为内容分割符,所以只会读取到第一个空白符之前的内容。
解决方案
使用C++标准库提供的std::getline()函数完成整行读取,该函数默认以换行符作为读取终止标识,会保留行内的所有空格内容。
完整实现代码
#include <iostream> #include <fstream> #include <string> int main() { std::string file_content; std::ifstream input_file("lio.txt"); // 校验文件是否成功打开 if (!input_file.is_open()) { std::cerr << "lio.txt文件打开失败,请检查文件路径是否正确" << std::endl; return -1; } // 读取整行内容到string变量 std::getline(input_file, file_content); // 测试输出读取结果,可根据业务需求删除 std::cout << "读取到的完整内容:" << file_content << std::endl; input_file.close(); return 0; }
补充说明
- 若需要读取文件内的所有行,可以循环调用
std::getline(),直到文件流到达末尾。 - 你可以传入第三个参数自定义读取终止符,比如
std::getline(input_file, file_content, ',')会一直读到遇到英文逗号为止。
内容的提问来源于stack exchange,提问作者Tawhidul Islam Fahim
相关产品推荐
相关产品推荐

