이 게시물에 첨부 된 코드는 더 큰 프로그램의 일부이지만 구조화 된 변수 'title'및 'author'에 대한 입력을받는 동안 문제가 발생합니다. 프로그램이 반복되어 다음 줄로 이동하는 것처럼 보입니다. 또한 문자열 지정자에서 [^ \ n] 앞에 's'를 사용하는 동안은 scanf를 사용하여 문자열을 입력으로 사용하는 것과 같지만 읽습니다. 몇 가지 게시물을 읽었지만 문제를 파악할 수는 없습니다. C로 시작하면 도움이 될 것입니다!구조 입력을위한 scanf 사용
struct books{
char title[30];
char author[30];
char subject[20];
int quantity;
int book_id;
char *category;
int count;
float price;
};
struct books book;
book.book_id=id;
printf("\n\n\t\tBook Name:\n\t\t");
scanf(" %s",book.title);
printf("\n\n\t\tAuthor:\n\t\t");
scanf(" %[^\n]s",book.author);
printf("\n\n\t\tQuantity:\n\t\t");
scanf("%d",&book.quantity);
printf("\n\n\t\tPrice:\n\t\t");
scanf("%f",&book.price);
% s 이전의 공간 일 수도 있습니다. – Luci
형식 지정자에 실제로 [[^ \ n]] 대신 [[^ \ n]'이 포함되어 있습니까? 거기에 여분의 공간도 필요하지 않습니다. '[^ \ n]'은 공백 문자 대신 문자열 구분 기호로 '\ n'을 지정합니다. 당신이 그것을 시도했다면, 그것은 당신이 게시 했어야하는 코드입니다. 입력에 공백이 없거나 문제가있는 경우에도 작동합니까? – Clifford
[mcve]하시기 바랍니다. BTW,'[^ \ n] 뒤에's'는 잘못되어서 제거해야합니다. 이것은 효과가 없지만 완전히 불필요합니다. –