很抱歉,如果这是一个愚蠢的问题,但我是一个学习C ++的新手程序员。
我有一个分配,其中输入txt文件提供16行1-5位数字,每行最多5个数字。我们应该在main中编写一个函数findmax来将每行的最大数输出到另一个txt文件中。
我的代码没有当前的编译错误我更加坚持如何在main中实际使用此函数并将其传递到outuput文件中。如果这很简单,请再次抱歉。
#include <iostream>
#include<fstream>
using namespace std;
int *make( int n)
{
#if 0
int *a = new int[n];
#else
int a[n];
#endif
for( int i=0; i < n; ++i) a[i] = i;
return a;
}
int findmax(int x1,int x2,int x3,int x4, int x5)
{
for(int i=0;i<5;i++)
{
int n, temp;
int a[i];
if(a[i]>temp)
temp=a[i];
return temp;
}
}
int main()
{
int n;
int x1, x2, x3, x4, x5, y1, y2, y3, y4, y5;
cout << "Enter number of lines n in the input file." << endl;
cin >> n;
int *a = make(n);
for( int i = 0; i < n; ++i) cout << a[i] << " "; cout << endl;
ifstream infile; infile.open("/home/labs/lab4/lab4_input.txt");
ofstream outfile; outfile.open("/home/labs/lab4/lab4_output.txt");
if( !infile.is_open()) cout << "open infile failed\n";
infile >> x1 >> x2 >> x3 >> x4 >> x5;
findmax( x1, x2, x3, x4, x5);
outfile << y1 << " " << y2 << " " << y3 << " " << y4 << " " << y5 << endl;
infile.close();
outfile.close();
return 0;
}
答案 0 :(得分:0)
首先,您说您应该读取和写入文件,但是当您使用cin
和cout
时,您实际上正在使用标准输入和输出。您需要研究用C ++读取和写入文件。
其次,在findmax
函数中,您传递了5个从未使用过的参数,并声明了一个您从未使用过的变量n
。 make
函数末尾的循环也没有意义。您需要分别读取每一行,将数字存储在一个数组中,然后使用传递该数组的findmax
函数作为参数。然后,在输出文件中输出该行的结果。