ошибка компиляции C++: ISO C++ запрещает сравнение между указателем и целым числом

Полагаю, вам нужно изменить настройки в VSCode, перейти в File-> Auto Save (снимите отметку с опции). После этого проект будет перезапущен только тогда, когда вы используете Ctrl + S по указанному пути.


Редактировать: я провел несколько тестов на своем компьютере и воспроизвел то, что вы пытаетесь иметь в виду, возможно, вы пытаетесь использовать разные расширения, которые не поддерживает nodemon. Взгляните на эту часть документации :

Определение списка наблюдения за расширениями По умолчанию nodemon ищет файлы с файлами .js, .mjs, .coffee, .litcoffee, и .json расширения. Если вы используете опцию --exec и монитор app.py, nodemon будет отслеживать файлы с расширением .py. Однако вы можете указать свой собственный список с помощью ключа -e (или --ext) следующим образом:

nodemon -e js, jade Теперь nodemon перезапустится при любых изменениях файлов в каталоге (или подкаталогах) с расширениями .js, .jade.

blockquote>

попробуйте запустить nodemon -e ts,json(all extensions that you want to be listener) dev-server.js. Когда я удалил расширение, у меня возникла та же проблема с вами.

26
задан Morlock 9 March 2010 в 00:51
поделиться

5 ответов

У вас есть два способа это исправить. Предпочтительным способом является использование:

string answer;

(вместо char). Другой возможный способ исправить это:

if (answer == 'y') ...

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

38
ответ дан Chris Jester-Young 28 November 2019 в 06:55
поделиться

Вам нужно поменять эти двойные кавычки на синглы. то есть. if (answer == 'y') возвращает true;

Вот некоторая информация о строковых литералах в C ++: http://msdn.microsoft.com/en-us/library/69ze775t%28VS.80%29 .aspx

5
ответ дан Waldir Leoncio 28 November 2019 в 06:55
поделиться

Вы должны помнить использовать одинарные кавычки для констант символов. Поэтому используйте

if (answer == 'y') return true;

Вместо

if (answer == "y") return true;

Я проверил это, и оно работает

2
ответ дан Danny Mahoney 28 November 2019 в 06:55
поделиться

"y" - строка/массив/указатель. 'y' - char/интегральный тип

3
ответ дан 28 November 2019 в 06:55
поделиться

Строковый литерал заключен в кавычки и имеет тип char*, а не char.

Пример: "hello"

Поэтому при сравнении char с char* вы получите ту же ошибку компиляции.

char c = 'c';
char *p = "hello";

if(c==p)//compiling error
{
} 

Для исправления используйте литерал char, разделенный одинарными кавычками.

Пример: 'c'

7
ответ дан 28 November 2019 в 06:55
поделиться
Другие вопросы по тегам:

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