C++ 向输出列中的双精度字符添加字符

C++ 向输出列中的双精度字符添加字符,c++,C++,我有一个程序,可以从文件中提取员工的名字、姓氏、工作时间和工资率。然后,它计算总工资、税率和净工资,然后在控制台的列中列出信息(目前) 我想知道的是,我是否可以在包含美元金额的列中添加一个“$”,这些列是右对齐的,并且“$”就在金额旁边。(就像将这两个元素添加到同一列。) i、 e.姓氏、姓氏、小时数、$payrate、$grossPay、$netpay 我知道如果我将列与美元值左对齐,它的工作原理就像它就在它旁边一样,但是小数位数没有对齐,并且它们右对齐时,它本身就有一列“$” 这就是我所拥有

我有一个程序,可以从文件中提取员工的名字、姓氏、工作时间和工资率。然后,它计算总工资、税率和净工资,然后在控制台的列中列出信息(目前)

我想知道的是,我是否可以在包含美元金额的列中添加一个“$”,这些列是右对齐的,并且“$”就在金额旁边。(就像将这两个元素添加到同一列。)

i、 e.姓氏、姓氏、小时数、$payrate、$grossPay、$netpay

我知道如果我将列与美元值左对齐,它的工作原理就像它就在它旁边一样,但是小数位数没有对齐,并且它们右对齐时,它本身就有一列“$”

这就是我所拥有的:

  Last Name   First Name  Hours         Rate     Gross       Net
1.Wingert       Antone      35       $   15.70 $  585.50 $  500.05
这就是我想要的:

   Last Name    First Name    Hours       Rate    Gross      Net
 1.Wingert     Antone         35        $51.70  $585.50  $500.05

我有50个文件输入。这是一个类,我们不能使用我们在类中没有提到的任何东西,因此没有printf和数组。

您可以始终使用gotoxy()函数来指示要将“$”符号放置在何处:

void gotoxy(int x, int y)
{
    COORD pos={x,y};
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
如果编译器没有gotoxy,请在文件中添加此代码。你可以在网上找到更多关于gotoxy()的信息,也可以自己尝试

如果需要,您可以通过创建自己的函数来编辑代码,该函数可以在任何位置添加任何字符,如下所示:

void addchar(int x, int y, char n)
{
    COORD pos={x,y};
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
    cout<<n;
}
void addchar(int x,int y,char n)
{
坐标pos={x,y};
设置控制台或位置(GetStdHandle(标准输出手柄),位置);
我现在就是这样做的。

{cout如果你不能使用
printf
,你现在是如何调整事情的?用手?用
cout
iomanip
?顺便说一句,我讨厌这种教学方法。上天禁止你在教东西之前先学东西……尽管在较低的层次上学习东西是个不错的主意。把数字转换成strings,将它们与
$
连接起来,然后在右对齐的列中输出。@Cameron我猜是
cout@Cameron,是的是
iomanip
。不,我不能,我们没有讨论过这一点。@jimistephen然后只需使用:“cout问题是我有50个姓名、工作时间和工资率要处理,这样做会让我很失望。”在整个控制台上以列形式排列它们。另一个问题是我认为这些是windows特定的功能?@jimistephen我不明白你的意思?t将沿着列完美地排列它们。基本上,'\t'的作用是移动到控制台上最近的位置,其坐标在水平方向上是8的倍数。给\t一个镜头,然后y你会明白我的意思,我不知道如何在这里编写代码,有人想告诉我吗?在编辑器中,单击“代码”,获取有关如何对代码进行格式化的帮助。(如果没有显示,请单击编辑框右上角的
,使其显示。)