我有一个记事本,里面有很多字符(大约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;
}
答案 0 :(得分:1)
您发布的代码将从程序的工作目录中打开文件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;
}
但是,在不了解您要做什么的情况下,我不能肯定地说这是正确的模式。这将取决于您的用例。