sprintf()和printf()在控制台中打印多行?

时间:2015-02-25 02:00:22

标签: c printf

我有以下代码:

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

1 个答案:

答案 0 :(得分:1)

per中的字符串可能以\n结尾,因此正在复制\n个字符。当你打印出最后一个字符串时,所有这些\n个字符都被打印出来。