C++;当写入文件时,它只写入最后一行而不是全文? 我在C++中有一个问题,在这个程序中,我正在写的程序读取一个预先存在的文本文件,叫做“代码>建造者.TXT ,然后把相同的信息写入一个新的文本文件中,称为“代码>输出。TXT < /Cord>,但是,当我运行程序时,在代码文件是最后一行,这就是汤姆:90:3。

C++;当写入文件时,它只写入最后一行而不是全文? 我在C++中有一个问题,在这个程序中,我正在写的程序读取一个预先存在的文本文件,叫做“代码>建造者.TXT ,然后把相同的信息写入一个新的文本文件中,称为“代码>输出。TXT < /Cord>,但是,当我运行程序时,在代码文件是最后一行,这就是汤姆:90:3。,c++,C++,文本文件 Reliable Rover:70:1. Sloppy Simon:20:4. Technical Tom:90:3. output.txt文件的预期输出将是上面显示的文件 身体程序 int main() { readFile(); writeFile(); getch(); return 0; } 实现文件 std::ifstream filereadBuilders("Builders.txt"); std::string input; void readF

文本文件

Reliable Rover:70:1.
Sloppy Simon:20:4.
Technical Tom:90:3.
output.txt
文件的预期输出将是上面显示的文件

身体程序

int main() {

  readFile();
  writeFile();
  getch();
  return 0;
}
实现文件

std::ifstream filereadBuilders("Builders.txt");
std::string input;

void readFile() { //fumction that reads each file. 

  std::vector < std::string > readBuilders;

  //loop to read builders.txt
  while (filereadBuilders >> input) {
    readBuilders.push_back(input);
  }

  std::cout << endl;
}

void writeFile() {

  std::ofstream file("output.txt");
  std::vector < std::string > RAT;
  RAT.push_back(input);

  for (std::string outputFile: RAT) {
    file << outputFile << std::endl;
  }

}
std::ifstream filereadBuilders(“Builders.txt”);
std::字符串输入;
void readFile(){//读取每个文件的操作。
std::vectorreadBuilders;
//循环读取builders.txt
而(filereadBuilders>>输入){
readBuilders.push_back(输入);
}
性病:库特大鼠;
老鼠推回(输入);
用于(std::字符串输出文件:RAT){
当您使用

std::vector<std::string> RAT;
RAT.push_back(input);
并称他们为

std::vector<std::string> lines;
std::string inputFile = "Builders.txt";
std::string outputFile = "output.txt";

readFile(inputFile, lines);
writeFile(outputFile, lines);
std::矢量线;
std::string inputFile=“Builders.txt”;
std::string outputFile=“output.txt”;
读取文件(输入文件,行);
writeFile(输出文件,行);

从函数传递和返回值是一个初学者很难理解的概念。@john,这似乎说明了编程教学中的一个缺陷。我无法理解这个问题,因为我是一个自学成才的程序员。
std::vector<std::string> lines;
std::string inputFile = "Builders.txt";
std::string outputFile = "output.txt";

readFile(inputFile, lines);
writeFile(outputFile, lines);