C++ setw(n)和对齐没有按我需要的方式工作到-C++;

C++ setw(n)和对齐没有按我需要的方式工作到-C++;,c++,setw,C++,Setw,这是我的上下文代码。这是我的第二个家庭作业《编程课程简介》,我使用了我们在这项作业中学到的所有知识。我不允许使用任何我没有学过的东西 我关心的部分是最底层的输出(注释为信息输出)。目前,我正在努力使所有内容完全对齐(右边栏中的最后一个字母或数字必须相互对齐,就像我从右边键入它们一样) 除了病人的名字、房间类型和住院天数外,所有的东西都正确对齐,小数对齐。将setw(10)更改为任何较大的东西都没有任何好处(例如:我将所有的东西都更改为setw(40),但仍然没有正确对齐任何东西。有什么想法吗 #

这是我的上下文代码。这是我的第二个家庭作业《编程课程简介》,我使用了我们在这项作业中学到的所有知识。我不允许使用任何我没有学过的东西

我关心的部分是最底层的输出(注释为信息输出)。目前,我正在努力使所有内容完全对齐(右边栏中的最后一个字母或数字必须相互对齐,就像我从右边键入它们一样)

除了病人的名字、房间类型和住院天数外,所有的东西都正确对齐,小数对齐。将setw(10)更改为任何较大的东西都没有任何好处(例如:我将所有的东西都更改为setw(40),但仍然没有正确对齐任何东西。有什么想法吗

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

//constants
const float PRIVATE = 125.00;
const float SEMI = 95.00;
const float WARD = 75.00;
const float TV = 3.50;
const float PHONE = 1.75;

int main()
{   //local variables
    string fname, lname, roomType, tvAccess, phoneAccess;
    int id, days;
    float roomBill, roomPrice, tvCharge, phoneCharge;
    bool error = false;

    //data collection/output
    cout << "Welcome to the hospital self-service program. Your bill will be calculated here.\n\n" << endl;
    cout << "Please enter your first and last name: ";
    cin >> fname;
    cin >> lname;
    cout << fname << " " << lname << ", please enter the four digit identification number found on your hospital wristband: ";
    cin >> id;
    cout << "Please enter the number of days spent in the hospital: ";
    cin >> days;
    cout << "\nEnter the type of room you stayed in: \nEnter P for room type: Private \nEnter S for room type: Semi-Private\nEnter W for room type: Ward \n" << endl;
    cin >> roomType;
    cout << "\nDid your room come with access to Television? Y/N: ";
    cin >> tvAccess;
    cout << "Did your room come with access to a Telephone? Y/N: ";
    cin >> phoneAccess;

    //if and elses
    if (roomType == "P" || roomType == "p")
    {
        error = false;
        roomType = "Private Room";
        roomPrice = PRIVATE;
    }
    else if (roomType == "S" || roomType == "s")
    {
        error = false;
        roomType = "Semi-Private Room";
        roomPrice = SEMI;

    }
    else if (roomType == "W" || roomType == "w")
    {
        error = false;
        roomType = "Ward Room";
        roomPrice = WARD;

    }
    else
    {
        cout << "Room type not valid. Exit the program and try again." << endl;
        error = true;
    }
    if (tvAccess == "Y" || tvAccess == "y")
        tvCharge = TV;
    else
        tvCharge = 0;

    if (phoneAccess == "Y" || phoneAccess == "y")
        phoneCharge = PHONE;
    else
        phoneCharge = 0;


    //information output
    cout << fixed << setprecision(2) << showpoint << endl;
    cout << setw(24) << left << "\n\nPatient Full Name: " << setw(10) << right << fname << " " << lname << endl;
    cout << setw(24) << left << "Identification Number: " << setw(10) << right << id << endl;
    cout << setw(24) << left << "Days spent in hospital: " << setw(10) << right << days << " day(s)" <<  endl;
    cout << setw(24) << left << "Room Type: " << setw(10) << right << roomType << endl;
    cout << setw(24) << left << "Room Charge: " << setw(10) << right << roomPrice * days << endl;
    cout << setw(24) << left << "Television Charge: " << setw(10) << right << tvCharge * days << endl;
    cout << setw(24) << left << "Telephone Charge: " << setw(10) << right << phoneCharge * days << endl;
    cout << setw(24) << left << "Total Charge: " << setw(10) << right << days * (phoneCharge + tvCharge + roomPrice) << endl;

    system("pause");
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
//常数
const float PRIVATE=125.00;
常数浮点数=95.00;
常数浮点数=75.00;
恒浮电视=3.50;
常数浮点数=1.75;
int main()
{//局部变量
字符串fname、lname、roomType、tvAccess、phoneAccess;
int id,天;
浮动房费、房费、电视费、电话费;
布尔误差=假;
//数据收集/输出
cout>lname;
无法访问;
cout>phoneAccess;
//伊夫和埃尔斯
如果(roomType==“P”| | roomType==“P”)
{
错误=错误;
roomType=“私人房间”;
roomPrice=私人;
}
else if(roomType==“S”| | roomType==“S”)
{
错误=错误;
roomType=“半私人房间”;
房价=半价;
}
else if(roomType==“W”| | roomType==“W”)
{
错误=错误;
roomType=“病房”;
房间价格=病房;
}
其他的
{

原因是它们的格式不正确,是
setw

setw(10) << right << fname << " " << lname << endl;

setw(10)它们格式不正确的原因是,
setw

setw(10) << right << fname << " " << lname << endl;

setw(10)请给我们您的预期输出和实际输出。我不知道如何做,我认为我的解释是足够的。让我看看我是否可以创建一张图片。您可以像这样捕获输出:./aout arg1>>result.txt对于初学者,您应该失去前面的\n\n
cout ANDERS K!!!你就是那个人,这就是问题所在!!!我爱你你这个家伙。请给我们你的预期输出和实际输出。我不知道怎么做,我认为我的解释是足够的。让我看看我是否可以为它创建一张图片。你可以这样捕获输出:./aout arg1>>result.txt对于初学者来说,你应该失去前面的\n\n
cout ANDERS K!!!你就是那个人,这就是问题所在m!!!我爱你,伙计。所以我想这就是你的意思,我在代码末尾添加了这个。string name=fname+“”+lname;现在我的名字、姓氏和一个空格都存储在一个字符串中。但它仍然没有按预期工作。现在所有东西都右对齐了,除了名字,现在左边只有几个空格。所以我没有hink这就是你的意思,我在代码末尾添加了这个。string name=fname+''+lname;现在我的名字、姓氏和空格都存储在一个字符串中。但它仍然无法按预期工作。现在所有内容都右对齐,除了名称,现在左对齐了几个空格。