如何读写文件
How to read and write a file
我有一个名为read。txt E:My_projectdictionary databaseread.txt
的文件,它看起来像
1245
15
12
454564
122
....
我想逐行读取read.txt,并希望将这些值保存为矢量,最后输出矢量,并将矢量的值写入另一个名为write.txt的txt文件,该文件将与read.txt看起来相同??我如何在c++中做到这一点??
我尝试像这样从文件中读取值:
ifstream ifs("read.txt", ifstream::in);
但是我不知道在哪里保存read.txt文件。read.txt和write.txt应该放在什么位置?
编辑:如果我使用vector来保存文本中的输入,我会得到一个错误:
int textLine;
vector<int> input;
ifstream ifs("C:\Users\Imon-Bayazid\Desktop\k\read.txt", ifstream::in);
if (ifs.good()) {
while (!ifs.eof()) {
getline(ifs, textLine);
input.push_back(textLine);
}
ifs.close();
} else
cout << "ERROR: can't open file." << endl;
for(int i=0;i<input.size();i++)
cout<<input.at(i);
由于文件名硬编码为"read.txt"
,因此该文件必须与可执行文件位于同一文件夹中。如果文件的位置不会改变,您可以硬编码完整路径:
ifstream ifs("E:\My_project\dictionary database\read.txt", ifstream::in);
(注意双反斜杠:这是c++编译器将它们视为普通斜杠的原因)。
如果你的二进制文件位于E:My_project
,那么你需要调整你打开的文件的路径:ifstream ifs("./dictionary database/read.txt", ifstream::in);
您可以在打开文件时给出文件的绝对路径:
ifstream ifs("E:\My_project\dictionary database\read.txt", ifstream::in);
或者你可以将读取文件的可执行程序移到文件所在的目录中。
编辑:通过这样声明你的vector: vector<int> input;
,你创建了一个vector,在这个vector中你只能存储整数值,但是你从file(textLine
)中读取的是一个字符串。如果您只想将文件中的数字解释为整数值,则必须使用
input.push_back(atoi(textLine.c_str()));
相关文章:
- 用C++快速读写文件
- C++中读/写二进制文件
- 为什么使用_access时只读测试对读写文件有效
- 谷歌测试读写同一文件失败
- UWP 是否有同步文件读/写 API
- 为什么SDL_RWFromFile(文件,"w+")不能像它应该的那样读写?它只打开文件进行写入
- 如何使用 Dlang 或 cpp 捕获和修改对文件的读写
- 如何读写结构向量到文件
- 读/写二进制文件返回0xcccccccccccc
- C++中大文件读/写的性能问题
- 读/写文件导致错误。(javaScript & C++)
- 逐行读取文件时,文件读写
- 调试读/写字符串到二进制文件
- 使用boost iostreams将数组读写到压缩文件中
- 用c++读写多个文件
- 提升内存映射文件:读写访问
- C++在g++和msvc之间不同的文件读/写时间
- 将C++文件读写转换为C#文件读写
- c++用二进制文件读/写对象
- 文件读写会产生valgrind错误