[英]Print the structure values in c
I wrote a small program in c programming language.我用c编程语言写了一个小程序。 The program just get students data and save them in the struct fields.
该程序只是获取学生数据并将它们保存在结构字段中。 After that I was hoping to print the data but it seems that the code is not working properly.
之后我希望打印数据,但似乎代码无法正常工作。
I wrote that in the visual studio 17 ide.我在视觉工作室 17 ide 中写道。
#include <stdio.h>
#include <string.h>
struct Students
{
char Student_ID[12];
char Student_FirstName[20];
char Student_LastName[20];
char Student_StudyField[32];
int Student_Level;
};
int main()
{
struct Students STU1;
printf("Student ID: ");
scanf_s("%11s", STU1.Student_ID, sizeof(STU1.Student_ID));
printf("Student first name: ");
fgets(STU1.Student_FirstName, sizeof(STU1.Student_FirstName), stdin);
printf("Student last name: ");
fgets(STU1.Student_LastName, sizeof(STU1.Student_LastName), stdin);
printf("Student study field: ");
fgets(STU1.Student_StudyField, sizeof(STU1.Student_StudyField), stdin);
printf("Student level: ");
scanf_s("%2d", STU1.Student_Level, sizeof(STU1.Student_Level));
printf("\n");
printf("Student ID: %s\n", STU1.Student_ID);
printf("Student first name: %s\n", STU1.Student_FirstName);
printf("Student last name: %s\n", STU1.Student_LastName);
printf("Student study field: %s\n", STU1.Student_StudyField);
printf("Student level: %d\n", STU1.Student_Level);
return 0;
}
Output: Output:
Student ID: 12345678900
Student first name: Tom
Student last name:
Student ID: 12345678900
Student first name: Tom
Student last name:
Temporary buffer + gets + sscanf should work临时缓冲区 + 获取 + sscanf 应该可以工作
char buff[256] ;
STU1.Student_Level = 0 ; // Or other default
if ( fgets(buff, sizeof(buff), stdin) ) {
int v ;
if ( sscanf(buff, "%d", &v) == 1 ) {
STU1.Student_Level = v ;
} ;
} ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.