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]'
答案 0 :(得分:2)
您已交换了文件流类型。
您想从integers.txt读入,但是您在文件上打开了ofstream
。 ofstream
只允许输出到文件中,而不是从中读取,因此只定义了<<
运算符,而不是>>
。您想在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)
您没有正确使用ifstream
和ofsteam
。 ifstream
用于阅读,ofstream
用于将内容写入文件。但是,您的代码中还有一些问题,即
numbers
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;
}