-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]'를 선언 할 수 있습니다. 배열 인덱스는 0부터 시작하여'num [num-1] [0]'예를 들어'a [0] [0]'->' 초보자라면 1 차원 배열로 시작해야 할 것입니다. –