#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student { //구조체 선언
char name[10];
int age;
int sid;
int code;
};
int main() {
struct student man1;
int i = 0;
while (i < 1) {
fgets(man1.name, sizeof(man1.name), stdin); //문자열 입력
scanf_s("%d", &man1.age);
scanf_s("%d", &man1.sid);
scanf_s("%d", &man1.code);
i++;
} i = 0;
while (i < 1) {
printf("%d\n", man1.sid);
printf("%s", man1.name);
printf("%d\n", man1.age);
printf("%d\n", man1.code);
i++;
}
return 0;
}
위와 같은 코드로 할시 문자열 입력이 원할하게 잘됩니다. 그런데...
=====================================================================================================================
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student {
char name[10];
int age;
int sid;
int code;
};
int main() {
struct student man1;
int i = 0;
while (i < 1) {
scanf_s("%s", man1.name); //문자열 입력 오류
scanf_s("%d", &man1.age);
scanf_s("%d", &man1.sid);
scanf_s("%d", &man1.code);
i++;
} i = 0;
while (i < 1) {
printf("%d\n", man1.sid);
printf("%s", man1.name);
printf("%d\n", man1.age);
printf("%d\n", man1.code);
i++;
}
return 0;
}
이렇게 하면 문법상의 오류는 없지만 문자열 입력시 프로그램이 엑세스가 거부되었다며 중지 됩니다
다른 예제에서도 간단한 문자열 입력시 scanf함수로 잘만 입력 받던데 왜 안되는지 궁금합니다....