如何读写文件

How to read and write a file

本文关键字:文件 读写 何读写      更新时间:2023-10-16

我有一个名为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()));