我有以下代码:
void printStudent(Person per) {
char string[100];
char firstName[10];
strcpy(firstName,per.firstName);
char familyName[20];
strcpy(familyName,per.familyName);
char teleNum[10];
strcpy(teleNum,per.teleNum);
int gpa = per.StuEmp.stu.gpa;
int numCourses = per.StuEmp.stu.numCourses;
float tuFees = per.StuEmp.stu.tuFees;
sprintf(string, "\n%s %s Tel: %s, GPA: %d, Courses: %d, Tuition: %.2f\n",firstName,familyName,teleNum,gpa,numCourses,tuFees);
printf("%s",string);
}
我希望控制台中的所有字符串都打印在一行,但它会按以下格式打印:
Bob
Joe
Tel: 123456
, GPA: 8, Courses: 6, Tuition: 12345.89
我希望它像这样打印:
Bob Joe Tel: 123456, GPA: 8, Courses: 6,Tuition: 12345.89
答案 0 :(得分:1)
per
中的字符串可能以\n
结尾,因此正在复制\n
个字符。当你打印出最后一个字符串时,所有这些\n
个字符都被打印出来。