私はファイルから配列にデータを読み込むはずのC++プログラムを持っています。配列が設定されると、ユーザーは表示する行番号を入力し、プログラムはその行に格納されている値を表示することになります。プログラムはデータを配列に正常に読み込みますが、行に格納されている値は表示されず、メモリの場所が表示されます。あなたは配列の最後過去1であるprice[NUM_ROWS]
、にファイルからすべてのデータを読んでいるように見えますC++プログラムでメモリ位置ではなく値を表示するにはどうしたらいいですか?
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
ifstream SeatPrices;
static const int NUM_ROWS = 15;
static const int NUM_SEATS = 30;
string SeatStructures[NUM_ROWS][NUM_SEATS];
double price[NUM_ROWS];
int rowRequested;
SeatPrices.open("SeatPrices.dat");
if (!SeatPrices)
cout << "Error opening SeatPrices data file.\n";
else
{
for (int rows = 0; rows < NUM_ROWS; rows++)
{
SeatPrices >> price[NUM_ROWS];
cout << endl << "Row " << (rows + 1) << ":\t";
cout << "$" << price[NUM_ROWS];
}
cout << endl << endl;
}
SeatPrices.close();
cout << "In which row would you like to find seats(1 - 15)? ";
cin >> rowRequested;
cout << fixed << showpoint << setprecision(2);
cout << "Price per seat: $" << price[rowRequested] << endl;
return 0;
}
'SeatPrices >> price [NUM_ROWS];'は配列の最後を超えて書き込みます。あなたは 'SeatPrices >> price [i];' –
@Johnnyと他の場所で似ています。 –
デバッガに慣れておきたい場合があります。それはあなたに多くの時間を節約してくれました。 –