C ++从文本文件读入数组然后再读入另一个文本文件

时间:2015-08-02 15:50:47

标签: c++ arrays

integers.txt具有以下数字:1 2 3 4 5 6 7 8 9 10

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
  int numbers[10];
  int i;
  ofstream outf;
  outf.open("integers.txt");
  ifstream inf;
  inf.open("in.txt");
  for(int i = 0; i < numbers[i]; i++);
  {
    outf >> numbers[10];

  }
  inf << numbers[10];
  outf.close();
  inf.close();
  return 0;
}

我希望程序将integers.txt文件中的整数输出到数组,并从数组输出到in.txt文件。我收到以下错误:no match for 'operator>>' in 'outf >> numbers[10]'

2 个答案:

答案 0 :(得分:2)

您已交换了文件流类型。

您想从integers.txt读入,但是您在文件上打开了ofstreamofstream只允许输出到文件中,而不是从中读取,因此只定义了<<运算符,而不是>>。您想在integers.txt上打开ifstream,以便您可以从文件中读取输入,并可能在in.txt中打开ofstream

ifstream inf;
inf.open("integers.txt");
ofstream outf;
outf.open("in.txt")

//read in from inf (aka integers.txt)
//output to outf (aka in.txt)

答案 1 :(得分:1)

您没有正确使用ifstreamofsteamifstream用于阅读,ofstream用于将内容写入文件。但是,您的代码中还有一些问题,即

  • 使用未初始化的numbers
  • 数组
  • 使用未初始化的变量i
  • 尝试访问数组[size](numbers[10])时出现stack around the variable 'numbers' is corrupted
  • 错误

以下代码将为您完成任务:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
  int numbers[10] = {0};
  int i = 0;
  ofstream outf;
  outf.open("in.txt");

  ifstream inf;
  inf.open("integers.txt");
  while (inf >> numbers[i])
  {
    inf >> numbers[i];
    outf << " " << numbers[i];
    i++;
  }
  outf.close();
  inf.close();
  return 0;
}