申し訳ありませんが、これは愚かな質問ですが、私はC++を学ぶ初心者のプログラマです。ポインタによる動的配列へのアクセス
私は、入力txtファイルには、各行に最大5つの数字を持つ16行の1-5桁の数字が割り当てられています。 mainに使うfindmax関数を書いて、各行の最大値を別のtxtファイルに出力することになっています。
私のコードには現在のコンパイルエラーはありません。私は、実際にmainでこの関数をどのように利用して出力ファイルに渡すのか、もっと悩んでいます。これが本当にシンプルなら、再び申し訳ありません。すべての
#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;
}
C++の教科書を解読し、配列に関する章を読む必要があります。このサイトはあなたにそのような基本的な概念を教えることはできません。コンパイルフラグが間違っているため、あなたのプログラムは完全な事故でコンパイルされます。 –
'make'関数で' int a [n]; 'は標準C++言語の一部ではない可変長配列(VLA)を作成します。インターネットで "C++ array dynamic memory new"を検索します。 –
std :: vectorを使用してください! –