Member 14052778 Ответов: 3

Почему я получаю такое предупреждение ?


Предупреждение C4477 'ом' : строка формата "%s " не требует аргумент типа 'типа char *', но аргумент 2 с переменным числом аргументов имеет тип 'строка CString'

Что я уже пробовал:

sprintf(m_Tip.szUnit, "%s", "для адреса ретрансляции");

MadMyche

Пожалуйста, укажите соответствующий код; строку, выдающую ошибку, а также определения переменных, используемых в этой строке

3 Ответов

Рейтинг:
7

CHill60

Попробуйте использовать массив символов для вашего текста например

char s[] = "for Relay Address";
sprintf(m_Tip.szUnit, "%s", s);
Или в этом случае
m_Tip.szUnit = "for Relay Address";
предполагая, m_Tip.szUnit определяется как std::string


Рейтинг:
20

CHill60

5 ' D - не видел вашего решения (ни CPallini) до тех пор, пока я не написал

Рейтинг:
2

CPallini

Цитата:
sprintf(m_Tip.szUnit, "%s", "для адреса ретрансляции");
"для ретрансляции адреса" не похоже на то, чтобы ... CString ко мне. Возможно, вы пишете не по той линии.

Кстати, а что плохого в этом
m_Tip.szUnit = "for Relay Address";
?


Richard MacCutchan

Может быть, ему нужен strcpy.

CPallini

Я думаю m_Tip.szUnit это CString- Дикая догадка, я знаю.

Richard MacCutchan

Сообщение об ошибке, по-видимому, жалуется на строковую константу, что немного странно.

CPallini

Это очень странно. На самом деле, я полагаю, что ОП не сообщила точно о преступной линии.

Richard MacCutchan

В этом нет ничего удивительного. :(