C 一个接一个地打印记录

C 一个接一个地打印记录,c,C,我想打印如下数据: FirstName FamilyName (33 characters), Tel: xxxxxxxxxx, Age: xx, Level: xx, Salary: xxxxx.xx John Dilbert Tel: 6135202600, Age: 58, Level: 13, Salary: 450.34 Jane Smith Tel: 6135202600, Age: 47, Level: 10, Salary: 133450.00 比如说 John Dilbe

我想打印如下数据:

FirstName FamilyName (33 characters), Tel: xxxxxxxxxx, Age: xx, Level: xx, Salary: xxxxx.xx
John Dilbert Tel: 6135202600, Age: 58, Level: 13, Salary: 450.34
Jane Smith Tel: 6135202600, Age: 47, Level: 10, Salary: 133450.00 
比如说

John Dilbert Tel: 6135202600, Age: 58, Level: 13, Salary:    450.34
Jane Smith   Tel: 6135202600, Age: 47, Level: 10, Salary: 133450.00 
我面临的主要问题是如何把电话放在前面。还有,如何设置浮动工资的格式,使小数位数一个接一个

当前我的输出如下所示:

FirstName FamilyName (33 characters), Tel: xxxxxxxxxx, Age: xx, Level: xx, Salary: xxxxx.xx
John Dilbert Tel: 6135202600, Age: 58, Level: 13, Salary: 450.34
Jane Smith Tel: 6135202600, Age: 47, Level: 10, Salary: 133450.00 
代码:

void printData(struct person currentPerson){
    printf("%s %-33sTel: %10s",currentPerson.firstName,currentPerson.familyName,currentPerson.telephone);

}
void printStudent(struct Student currentStudent){
    printf("GPA:%3d, Courses:%3d, Tuition: %5f\n",currentStudent.GPA,currentStudent.coursesCount,currentStudent.tuitionFees);
} 
大体上:

printData(person[i]);
printf(", ");
printStudent(person[i].student);

但结果仍然是错误的。为什么?如果要控制数据的宽度,请提供帮助,然后可以在printf格式字符串中使用宽度子说明符。例如:

printf("%5d", 2);

如果要控制数据的宽度,则可以在printf格式字符串中使用宽度子说明符。例如:

printf("%5d", 2);

最后一个双精度值呢?由于字符串的大小差异,姓氏后面的空格计数会不同吗?最后一个双精度值呢?由于字符串的大小差异,姓氏后面的空格计数会不同吗string@JohnKugelman姓氏之后会有不同的空间计数,因为尺寸差异string@JohnKugelman我添加了代码。但结果仍不尽如人意other@JohnKugelman姓氏之后会有不同的空间计数,因为大小的差异string@JohnKugelman我添加了代码。但结果仍然不是一个比另一个低