C++ 向输出列中的双精度字符添加字符
我有一个程序,可以从文件中提取员工的名字、姓氏、工作时间和工资率。然后,它计算总工资、税率和净工资,然后在控制台的列中列出信息(目前) 我想知道的是,我是否可以在包含美元金额的列中添加一个“$”,这些列是右对齐的,并且“$”就在金额旁边。(就像将这两个元素添加到同一列。) i、 e.姓氏、姓氏、小时数、$payrate、$grossPay、$netpay 我知道如果我将列与美元值左对齐,它的工作原理就像它就在它旁边一样,但是小数位数没有对齐,并且它们右对齐时,它本身就有一列“$” 这就是我所拥有的:C++ 向输出列中的双精度字符添加字符,c++,C++,我有一个程序,可以从文件中提取员工的名字、姓氏、工作时间和工资率。然后,它计算总工资、税率和净工资,然后在控制台的列中列出信息(目前) 我想知道的是,我是否可以在包含美元金额的列中添加一个“$”,这些列是右对齐的,并且“$”就在金额旁边。(就像将这两个元素添加到同一列。) 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你会明白我的意思,我不知道如何在这里编写代码,有人想告诉我吗?在编辑器中,单击“代码”,获取有关如何对代码进行格式化的帮助。(如果没有显示,请单击编辑框右上角的?
,使其显示。)