Подсветка синтаксиса дротика не выделяет код дротика

Поскольку вы не отправляли какие-либо данные, мне нужно было выяснить это самостоятельно, просто включите ввод и вывод дискретизации в следующий раз:

1
1
name

Посмотрим, что ваша программа делает с stdin в этот момент

scanf("%d",&choice); // in menu() in loop, choice := 1, ie add book
scanf("%d",&n); // in addbook(), n := 1, ie. 1 book
gets(str[bookcount].name); // in addbook in loop, this will be and should be ""

scanf () "потребляют и отбрасывают все ведущие символы пробела", а символ новой строки - символ пробела . Так вот что происходит:

scanf("%d",&choice); // reads '1' from the input, and stops BEFORE newline
scanf("%d",&n); // discards newline and reads 1 from the input and stops before newline
gets(str[bookcount].name); // because newline is still in buffer and gets 
                           // stops at first newline, this will read empty string
// the next gets will read the `name` from stdin, as it wasn't read already

Исправление довольно простое. Просто scanf для строк scanf("%d\n",...); не для отдельных переменных.

0
задан Digvijay 19 January 2019 в 23:38
поделиться

1 ответ

Как уже упоминалось в комментариях, вам не нужно расширение «Только подсветка синтаксиса», если у вас есть Dart, так как Dart включает ту же подсветку синтаксиса.

Судя по вашему скриншоту, кажется, что подсветка синтаксиса работает нормально - я вижу несколько цветов. Я думаю, что проблема, вероятно, тема VS Code, которую вы используете. Dark (Visual Studio) показывает только ограниченные цвета - попробуйте изменить его на Dark + , и вы должны увидеть больше цветов.

Dark

Dark theme

Dark +

Dark+ theme

0
ответ дан Danny Tuppeny 19 January 2019 в 23:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: