c++ - 如何使用 C++ 从记事本中读取很长的文本?
问题描述
我有一个包含很多字符(大约 10000 个、数字、字母、引号等)的记事本,我想全部阅读。我尝试了几种在网上找到的方法,但到目前为止都没有奏效。
看完文字后,我也想通过替换一个特定的单词来修改它。(我知道该怎么做)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream file("export_descr_buildings.txt");
string content;
while(file >> content) {
cout << content ;
}
return 0;
}
解决方案
您发布的代码export_descr_buildings.txt
将从程序的工作目录打开文件并打印出其内容(主要是 - 稍后会详细介绍。)如果您根本没有看到任何内容,则可能意味着该文件无法正确打开。您可以通过写入以下内容来检查文件是否打开:
ifstream file("export_descr_buildings.txt");
if (!file) {
// Report an error, and (probably) exit the program.
}
我会先尝试这个,看看问题是否在于文件是否可以打开。如果不是,那才是真正的问题,那么问题就是为什么。最可能的罪魁祸首是文件位于错误的目录中,您可以尝试通过将文件移动到不同的候选位置来解决该问题,直到您可以打开它。
这里还有另一个问题,那就是你读取文件的方式可能不会做你想做的事。默认情况下,如果你写
file >> content;
输入将消耗空格并且只能读取到空格。因此,如果您有一个包含文本的文件
A B C D
你会看到打印为输出
ABCD
因为所有的空格都会被删除。如果这就是你想做的,那就太好了!另一方面,如果您想逐字阅读文件的内容并将其打印出来,我建议使用以下成语:
for (string line; getline(file, line); ) {
cout << line << endl;
}
但是,如果不了解您要做什么,我不能肯定地说这是正确的模式。这将取决于您的用例。
推荐阅读
- ios - 前提条件失败:属性设置初始值失败:78 | iOS 13.2.2 | XCode 11.2.1
- c - 防止头文件双重包含的不同版本,哪个是正确的?
- python - 在 JPG 文件中嵌入数据而不更改 python 中的图像
- python - Python中的递归前序二叉树遍历 - 无类型错误
- sql - 在单个查询中获取分页行和总数
- command-line - 为什么 GREP end of line 不适用于此文件?
- module - Tricentis Tosca - 添加 TestStep 模块不包括模块的控件?
- c# - 如果目前仅提供部分内容,如何使用 c# 获取 HTTPWebRequest 的完整 json 内容?
- c - 无法将所有行 fscanf 到 Struct 数组中
- r - R,加回拟合值 plm(),拟合值小于回归中的观测值