stdio 精度 fprint
stdio precision fprint
这是家庭作业。除了这一件,我已经完成了所有编码。这是它应该是什么样子的一个例子。除了员工姓名
Employee's Pay RegHours Gross Fed SSI Net
Name Rate OvtHours Worked State Defr
========== ===== ======== ======= ====== ====== ======
Smith, Sam 25.00 40.00 1000.00 127.50 65.88 647.70
5.00 8.93 150.00
目前是这个样子。
Employee's Pay RegHours Gross Fed SSI Net
Name Rate OvtHours Worked State Defr
========== ===== ======== ======= ====== ====== ======
Smith 25.00 40.00 1000.00 127.50 65.88 647.70
Sam 5.00 8.93 150.00
Jordan 35.00 32.00 1120.00 149.25 77.11 758.19
Michael 0.00 10.45 125.00
Totals: 60.00 72.00 2120.00 276.75 142.99 1405.89
5.00 19.37 275.00
Averages: 30.00 36.00 1060.00 138.38 71.49 702.95
2.50 9.69 137.50
它具体说:"The employee's name must be printed as shown in the the report above with a comma and a space separating the first and last name."
我无法正确地将其设置为 space。
我的格式是这样的:
#define HEADERLINE1 " Employee's Pay RegHours Gross Fed SSI Net\n"
#define HEADERLINE2 " Name Rate OvtHours Worked State Defr\n"
#define HEADERLINE3 " ========== ===== ======== ======= ====== ====== ======\n"
#define REPLNEFORMT1 " %-12.15s%6.2f%12.2f%10.2f%8.2f%8.2f%10.2f\n"//Main Header Line 1
#define REPLNEFORMT2 " %-12s%18.2f%18.2f%8.2f\n\n"//Main Header Line 2
#define REPLNEFORMT3 " %-11s%7.2f%12.2f%10.2f%8.2f%8.2f%10.2f\n"//Totals Line 1
#define REPLNEFORMT4 " %30.2f%18.2f%8.2f\n"//Totals Line 2
#define REPLNEFORMT5 " %-11s%7.2f%12.2f%10.2f%8.2f%8.2f%10.2f\n"//Averages Line 1
#define REPLNEFORMT6 " %30.2f%18.2f%8.2f\n"//Averages Line 2
我是这样打印的:
fprintf(stdout,REPLNEFORMT1,ln,p,h<=40?h:40,g,fed,ssi,n);
fprintf(stdout,REPLNEFORMT2,fn,ovt,state,d);
fprintf(reportfile,REPLNEFORMT1,ln,p,h<=40?h:40,g,fed,ssi,n);
fprintf(reportfile,REPLNEFORMT2,fn,ovt,state,d);
ln = 姓氏,fn = 名字,p = 工资,h = 小时数,g = 总收入,n = 净收入。
我不能使用 iostream,因此标准精度是不可能的。
使用制表符来排列您的列,而不是空格。
char result[50];
strcpy(result, ln);
strcat(result, ", ");
strcat(result, fn);
试试这个
这是家庭作业。除了这一件,我已经完成了所有编码。这是它应该是什么样子的一个例子。除了员工姓名
Employee's Pay RegHours Gross Fed SSI Net
Name Rate OvtHours Worked State Defr
========== ===== ======== ======= ====== ====== ======
Smith, Sam 25.00 40.00 1000.00 127.50 65.88 647.70
5.00 8.93 150.00
目前是这个样子。
Employee's Pay RegHours Gross Fed SSI Net Name Rate OvtHours Worked State Defr ========== ===== ======== ======= ====== ====== ====== Smith 25.00 40.00 1000.00 127.50 65.88 647.70 Sam 5.00 8.93 150.00 Jordan 35.00 32.00 1120.00 149.25 77.11 758.19 Michael 0.00 10.45 125.00 Totals: 60.00 72.00 2120.00 276.75 142.99 1405.89 5.00 19.37 275.00 Averages: 30.00 36.00 1060.00 138.38 71.49 702.95 2.50 9.69 137.50
它具体说:"The employee's name must be printed as shown in the the report above with a comma and a space separating the first and last name." 我无法正确地将其设置为 space。
我的格式是这样的:
#define HEADERLINE1 " Employee's Pay RegHours Gross Fed SSI Net\n"
#define HEADERLINE2 " Name Rate OvtHours Worked State Defr\n"
#define HEADERLINE3 " ========== ===== ======== ======= ====== ====== ======\n"
#define REPLNEFORMT1 " %-12.15s%6.2f%12.2f%10.2f%8.2f%8.2f%10.2f\n"//Main Header Line 1
#define REPLNEFORMT2 " %-12s%18.2f%18.2f%8.2f\n\n"//Main Header Line 2
#define REPLNEFORMT3 " %-11s%7.2f%12.2f%10.2f%8.2f%8.2f%10.2f\n"//Totals Line 1
#define REPLNEFORMT4 " %30.2f%18.2f%8.2f\n"//Totals Line 2
#define REPLNEFORMT5 " %-11s%7.2f%12.2f%10.2f%8.2f%8.2f%10.2f\n"//Averages Line 1
#define REPLNEFORMT6 " %30.2f%18.2f%8.2f\n"//Averages Line 2
我是这样打印的:
fprintf(stdout,REPLNEFORMT1,ln,p,h<=40?h:40,g,fed,ssi,n);
fprintf(stdout,REPLNEFORMT2,fn,ovt,state,d);
fprintf(reportfile,REPLNEFORMT1,ln,p,h<=40?h:40,g,fed,ssi,n);
fprintf(reportfile,REPLNEFORMT2,fn,ovt,state,d);
ln = 姓氏,fn = 名字,p = 工资,h = 小时数,g = 总收入,n = 净收入。
我不能使用 iostream,因此标准精度是不可能的。
使用制表符来排列您的列,而不是空格。
char result[50];
strcpy(result, ln);
strcat(result, ", ");
strcat(result, fn);
试试这个