【问题标题】:Printing structure values trouble [duplicate]打印结构值麻烦[重复]
【发布时间】:2019-03-21 07:09:38
【问题描述】:

我尝试获取并打印一些结构值。这是我的循环块:

for(int i = 0; i < COURSE_LIMIT; i++)
   {
       printf("Enter the course name: ");

       fgets(studentProfile.courses[i].course_name, COURSE_NAME, stdin);              
       printf("Enter the quota: ");
       scanf("%d", studentProfile.courses[i].quota);


   }//get loop

   for(int j = 0; j < COURSE_LIMIT; j++)
   {
       printf("\nyour %d. course name is: %s",j+1, studentProfile.courses[j].course_name);
       printf("Your %c. course quota is: %d", j + 1, studentProfile.courses[j].quota);
   }//print loop

当我尝试单独执行它们时,没关系。但是当我尝试从同一个循环中获取输入时,我遇到了分段错误..

【问题讨论】:

  • scanf("%d", studentProfile.courses[i].quota); -> scanf("%d", &amp;studentProfile.courses[i].quota);
  • 总是,总是,总是...检查scanf返回的值

标签: c arrays loops struct nested


【解决方案1】:

scanf 将其参数作为指向您从标准输入读取的值的指针。 检查你读到的内容:

scanf("%d", studentProfile.courses[i].quota);

对于一般的 int i:

scanf("%d", &i);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2012-09-05
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多