線の片側を左揃えにし、線の反対側を右揃えにしようとしていますが、右側を右揃えにするのに問題があります。誰かが私のエラーをキャッチできますか?
//The following program will declare
#include <iostream>
#include <iomanip>
using namespace std;
const int HOUSING = 3500; //housing cost
const int MEALS = 2000; //meal cost
const int N_CRED_PER = 285; //out of state credit cost
const int CRED_PER = 130; //amount of money per credit(cost)
const int TAB = 30; //precision
const int ADD_FEES = 6200; //out of state fees for non-resident
int main()
{
cout << "Grant Mercer section 1002 Assignment 6\n\n";
int size, studentID, credits, i, valid,total;
//size of loop, studentID to hold ID of student, credits to hold num
//of credits the student will take, i to start loop
char first, last, res, housing, meal; //first and last to hold initials of
//student, res to hold code
//if student is resident, meal to hold
//code if student has meals
cin >> size; //grab length of loop in file
cout << left; //manipulate stream
cout << fixed << showpoint << setprecision(2);
valid = size; //initially all entries are valid, but de
//cremented each time something goes wrong
while (i < size)
{
cin >> studentID >> first >> last >> credits >> res; //read in mandatory data to vars
cout << setw(TAB) << left << "Student #: " << right << studentID << endl; //display id
cout << setw(TAB) << left << "Initials: " << right << first << last << endl;//display initials
if(credits > 0 && credits < 21) //if credits are fine
{
switch(res) //find char in res
{
case 'R': //if RESIDENT
case 'r':
cout << setw(TAB) << left << "Residency status: " << right << "Resident" << endl;
cout << setw(TAB) << left << "Credits: " << right << credits << endl;
cout << setw(TAB-10) << left << "Tuition: " << setw(10) << "$" << right << (double)CRED_PER * credits << endl;
cout << setw(TAB-10) << left << "Total due: " << setw(10) << "$" << right << (double)CRED_PER * credits << endl;
total += CRED_PER * credits; //add to total cost
break;
case 'N': //if NON-RESIDENT
case 'n':
cout << setw(TAB) << left << "Residency status: " << right << "Non-resident" << endl;
cin >> housing >> meal; //since the student is non-resident, they
//have a mean and house code
cout << setw(TAB) << left << "Credits: " << right << credits << endl;
cout << setw(TAB - 10) << left << "Tuition: " << setw(10) << "$" << right << (double)credits * N_CRED_PER + ADD_FEES << endl;
if(housing == 'H' || housing == 'h')
{
cout << setw(TAB - 10) << left << "Housing: " << setw(10) << "$" << right << (double)HOUSING << endl;
if(meal == 'M' || meal == 'm') //if MEALS
{
cout << setw(TAB-10) << left << "Meal Plan: " << setw(10) << "$" << right << (double) MEALS << endl;
cout << setw(TAB-10) << left << "Total due: " << setw(10) << "$" << right << (double) MEALS + HOUSING + (credits * N_CRED_PER) + ADD_FEES << endl;
total += MEALS + HOUSING + (credits * N_CRED_PER) + ADD_FEES;
//add to total
}
else //if NO MEALS
{
cout << setw(TAB-10) << left << "Total due: " << setw(10) << "$" << right << (double)\
HOUSING + (credits *N_CRED_PER) + ADD_FEES << endl;
total += HOUSING + (credits * N_CRED_PER) + ADD_FEES;
//add to total
total += HOUSING + (credits * N_CRED_PER) + ADD_FEES;
//add to total
}
}
else //if NO HOUSING NO MEALS
{
cout << setw(TAB-10) << left << "Total due: " << setw(10) << "$" << right << (double)(cr\
edits * CRED_PER) + ADD_FEES
<< endl;
total += (credits * CRED_PER) + ADD_FEES;
}
break;
}
}
else
{
cout << "INVLIAD CREDIT AMOUNT...\n";
valid--;
}
i++;
cout << endl << endl;
}
cout << "\nFINAL TOTALS\n"; //display final totals from students
cout << right << setw(TAB) << left << "Valid request count: " << right << valid << endl;
cout << setw(TAB) << left << "Invalid requrest count: " << right << size - valid << endl;
cout << setw(TAB - 10) << left << "Total feed due: " << setw(10) << "$" << right << (double)total;
cout << endl;
return 0;
}
出力はすべて左揃えになっていますが、これをすべて右揃えにするために何をする必要があるのかわかりません。ありがとう!