Отличия от scanf («% [^ \ n]», название); и scanf («% [^ \ n]», имя);

Это не опечатка. А для того, кто не замечает, на втором есть пробел, а на первом нет.

Это происходит со мной, когда я делаю домашнее задание, как это:

#include<stdio.h>

int main(){
int id,d,m,y;
char name[30];
printf("\tSTUDENT ID\t\t: ");scanf("%d",&id);\
printf("\tNAME\t\t: ");scanf("%[^\n]",&name);
printf("\tDATE OF BIRTH\t: ");scanf("%d/%d/%d",&d,&m,&y);
}

когда я делаю этот код, часть "NAME" переходит к вводу части "DATE ​​OF BIRTH"

Но когда я изменяю scanf ("% [^ \ n]", & name); в scanf ("% [^ \ n]", & name); все отлично работает

Как это могло случиться? Кажется, я не понимаю различий

Примечание. Вы можете попробовать его и скажите мне, работает ли он у вас нормально, потому что, возможно, это просто проблема с моим компьютером или что-то в этом роде.

Ответы на вопрос(2)

Ваш ответ на вопрос