-3
私は、ユーザーからの入力を受け取り、提供された入力を使って2次元配列を作成するプログラムを作成しようとしています。値を配列に適切に保存しますが、プログラムは適切に保存を実行できません。2次元配列をテキストファイルに書き込むにはどうすればよいですか?
誤った値が保存されます。ここでは、コードがあります:
#include <iostream>
#include <fstream>
#include <unistd.h>
using namespace std;
int main()
{
int num;
int productId =1;
cout << "Welcome To The Store Manager Registry! \n ";
cout << "How Many Products Would You Like To Add To The Registry?\n";
cin >> num;
if (num <= 0)
cout << "Please Enter A Valid Input More Than 0";
int a[num-1][2]; //creates a two dimensional array for items
for (;productId-1<num;productId++)
{
cout << "\nPlease Enter The Cost Price For Product Id "<< productId << " (ONLY NUMBERS) \n";
cin >> a[productId-1][0];
cout << "\nPlease Enter The Selling Price For Product Id "<< productId << " (ONLY NUMBERS) \n";
cin >> a[productId-1][1];
a[productId-1][2]=a[productId-1][1]-a[productId-1][0];
} //Receives Input And Saves Values To Array
cout << "Saving Data...";
ofstream outputfile;
outputfile.open("Statistics.txt");
for (int b = 1;b<=num;b++){
outputfile <<a[b-1][0]<<","<<a[b-1][1]<<","<<a[b-1][2]<<endl;//saves values to file
}
outputfile.close();
/* Saves Array In This Format:
Product Id Cost Price Selling price Profit
1 10 20 10
2 20 20 0
3 30 10 -20
But, Prints In This Format
Product Id Cost Price Selling price Profit
1 10 20 20
2 20 20 30
3 30 10 -20
*/
}
はここに入力します: そして、ここではそれがに保存されます.txtファイルです:だから
、最終的には、値が一致しないと、私はこの壊れたプログラムとこだわっています。私は3列と行のnum個の番号を必要とするので
'int [num-1] [2];'は 'C++'でも有効ではありません。そうであっても。それは間違っています。 –
このコードを修正するにはどうしたらいいですか? –
あなたの英語のピッキング:あなたはすべての単語を大文字にする必要はありません。あなたは3行4列あるので 'a [3] [4]'が必要なようです。コンパイラが可変配列をサポートしている場合は、 'a [num] [4]'を宣言できます。配列インデックスはゼロから始まり、 'num [num-1] [0]'のように 'num [num] '、例えば' a [0] [0] ' - >あなたが初心者の場合は、1次元配列から始めなければならないかもしれません。 –