작은 작업자 등록부를 만들려고 시도했지만 주소 값을 얻는 두 번째 scanf를 완전히 건너 뜁니다. 나는 초보자이기 때문에 내가 뭘 잘못하고 있는지 모른다. 다음은 코드입니다.scanf를 건너 뛰었습니다 (?)
#include <stdio.h>
int main()
{
// var
char n[256], ad[256]; // n - Name, ad - Address
int i, ag; // i - Income, ag - Age
// code
printf("Welcome to the Worker Register\n\nWorker Data\n\nName: ");
scanf("%255[^\n]", n);
printf("Address: ");
scanf("%255[^\n]", ad);
printf("Age: ");
scanf("%d", &ag);
printf("Income: R$");
scanf("%d", &i);
printf("Worker %s\nAddress: %s\nAge: %d\nIncome: R$%d", n, ad, ag, i);
return 0;
}
정말로 도움을 주셔서 감사합니다.
예, 스레드와 그 스레드를 읽었지만 C 코스를 시작할 때입니다. 그래서 포인터가 무엇인지 모릅니다. 나는 그것을 배우려고했지만, 나는 그것을 아주 잘 이해할 수 없었습니다. 그래서 지금은 제쳐두고 제가 공부할 때 돌아올 것입니다. 고맙습니다! @ 편집 : fgets는 어떤 라이브러리에서 왔습니까? – Gibas
'fgets()'는'scanf()'와 같은 라이브러리에 있습니다. – chux
버퍼 오버 플로우에 관해서는, "fgets (n, 255, stdin);" "fgets (n, 256, stdin);"대신 "? – Gibas