Russian Qt Forum
Ноябрь 23, 2024, 08:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3 4   Вниз
  Печать  
Автор Тема: signed/unsigned  (Прочитано 19866 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Июль 04, 2014, 09:58 »

"Самый строгий" компилятор пропускает это без всяких варнингов и пришлось искать "ну чего ж оно не равно"  Непонимающий

Код
C++ (Qt)
char test[10];
test[0] = 0xC3;
if (test[0] == 0xC3) {
..
Улыбающийся
Записан
Bepec
Гость
« Ответ #1 : Июль 04, 2014, 10:01 »

Видимо дело в 8 битике, который радостно сообщает нам, что число отрицательное.

PS Заведите себе доблестный раздел "вопросы и всякие интересности" Улыбающийся
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #2 : Июль 04, 2014, 10:14 »

В MSVC char по-умолчанию signed. А в данном коде более уместно применить quint8 (хотя это всего лишь typedef, но как-бы намекает...)
Записан
Bepec
Гость
« Ответ #3 : Июль 04, 2014, 10:22 »

И да, с точки зрения компилятора здесь всё правильно Улыбающийся
Не путайте ваше "человеческое" восприятие и правила компилятора Улыбающийся Всё в соответствии с преобразованием типов и представлением отрицательных чисел Улыбающийся

Сам такое ковырял, решил всё с помощью quint8 - самый безболезненный вариант.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #4 : Июль 04, 2014, 10:35 »

"Самый строгий" компилятор пропускает это без всяких варнингов...
Кушаете кактус и периодически приходите на форум показать очередную колючку, впившуюся в язык? Улыбающийся
Записан
Fat-Zer
Гость
« Ответ #5 : Июль 04, 2014, 11:05 »

"Самый строгий" компилятор пропускает это без всяких варнингов и пришлось искать "ну чего ж оно не равно"  Непонимающий

странный у вас «самый строгий компилятор»...
clang-3.3 выдаёт варнинг по дефолту...
gcc-4.7 c -Wextra выдаёт варнинг на сравнение, а с -pedantic ещё и на присваивание...
« Последнее редактирование: Июль 04, 2014, 11:07 от Fat-Zer » Записан
Bepec
Гость
« Ответ #6 : Июль 04, 2014, 11:30 »

Варнинги в компиляторах - это предупреждение программисту. Возможная ошибка. И каждый компилятор может что угодно в них писать.

Igors зачем вы выбрали C++, если вы собственными руками нарушаете правила, а потом кричите, что никто вас не предупредил? Улыбающийся

Четко описан порядок преобразования, представление отрицательных чисел. С++ тем и славен, что в ногу выстрелить позволяет Веселый
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #7 : Июль 04, 2014, 11:37 »

Конечно, компилятор может вообще ничего не писать, не то что предупреждения, а даже сообщения о ошибках - просто завершаться и все. Улыбающийся
Но стоит ли таким компилятором пользоваться?
Записан
Bepec
Гость
« Ответ #8 : Июль 04, 2014, 11:43 »

Просто тут столкнулся мой интерес что мои слова
Цитировать
Компилятор MSVC наиболее соответствует стандарту C++98 с поправками от 2003 года
А Igors их тут применяет по поводу
Цитировать
Вай он плохой плохой, предупреждение не пишет

И потому на мой взгляд он несправедлив Улыбающийся Потому что стандарту он соответствует, а вот то что варнинг не пишет - это уже другая история Улыбающийся

PS я сам бился с этой проблемой ммм... дня три наверно Веселый Пытался понять почему то работает, то не работает Веселый
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Июль 04, 2014, 11:47 »

Варнинги в компиляторах - это предупреждение программисту. Возможная ошибка. И каждый компилятор может что угодно в них писать.
Ваш любимец пишет, мягко говоря, "с избытком". Присвоил флоту дабл - ой/ай, смотрите, точность теряется!! (типа я не знал). Что ж он, падла, реальные/явные ошибки не ловит?

PS я сам бился с этой проблемой ммм... дня три наверно Веселый
Alt-8. там все сразу видно
Записан
Bepec
Гость
« Ответ #10 : Июль 04, 2014, 12:43 »

Нажать Alt+8 на контроллере, который находится за несколько сотен км Веселый
Обязательно попробую Веселый
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #11 : Июль 04, 2014, 12:46 »

понятная картинка в аттаче.

еще можно пользоваться статическим анализатором (например clang, PVS-Studio).
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #12 : Июль 04, 2014, 14:12 »

понятная картинка в аттаче.
Ага, ага
Код
Код
C++ (Qt)
#include <QtWidgets>
 
int main( int argc, char **argv )
{
(void) argc;
(void) argv;
char str[10];
str[0] = 0xC3;
bool test = (str[0] == 0xC3);
(void) test;
return 0;
}
 
Выхлоп с /W4
Цитировать
1>------ Build started: Project: Test1, Configuration: Debug Win32 ------
1>  TestMSVC.cpp
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qstring.h(842): warning C4127: conditional expression is constant
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qmetatype.h(777): warning C4512: 'QtMetaTypePrivate::VariantData' : assignment operator could not be generated
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qmetatype.h(765) : see declaration of 'QtMetaTypePrivate::VariantData'
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qobject_impl.h(135): warning C4512: 'QtPrivate::QSlotObjectBase' : assignment operator could not be generated
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qobject_impl.h(109) : see declaration of 'QtPrivate::QSlotObjectBase'
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(72): warning C4127: conditional expression is constant
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(81): warning C4127: conditional expression is constant
1>c:\qt\5.2.0\msvc2012\include\qtcore\qstringbuilder.h(149): warning C4512: 'QStringBuilder<QString,QString>' : assignment operator could not be generated
1>          c:\qt\5.2.0\msvc2012\include\qtcore\qstringbuilder.h(139) : see declaration of 'QStringBuilder<QString,QString>'
1>c:\qt\5.2.0\msvc2012\include\qtcore\qstringbuilder.h(162): warning C4512: 'QStringBuilder<QByteArray,QByteArray>' : assignment operator could not be generated
1>          c:\qt\5.2.0\msvc2012\include\qtcore\qstringbuilder.h(152) : see declaration of 'QStringBuilder<QByteArray,QByteArray>'
1>TestMSVC.cpp(6): warning C4309: '=' : truncation of constant value
1>TestMSVC.cpp(3): warning C4100: 'argv' : unreferenced formal parameter
1>TestMSVC.cpp(3): warning C4100: 'argc' : unreferenced formal parameter
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(521): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(511) : while compiling class template member function 'void QList<T>::append(const T &)'
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qstringlist.h(65) : see reference to function template instantiation 'void QList<T>::append(const T &)' being compiled
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qstringlist.h(62) : see reference to class template instantiation 'QList<T>' being compiled
1>          with
1>          [
1>              T=QString
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(785): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(774) : while compiling class template member function 'QHash<Key,T>::iterator QHash<Key,T>::insert(const Key &,const T &)'
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qvariant.h(759) : see reference to function template instantiation 'QHash<Key,T>::iterator QHash<Key,T>::insert(const Key &,const T &)' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qvariant.h(501) : see reference to class template instantiation 'QHash<Key,T>' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(216): warning C4512: 'QHashNode<Key,T>' : assignment operator could not be generated
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(786) : see reference to class template instantiation 'QHashNode<Key,T>' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(226): warning C4512: 'QHashDummyNode<Key,T>' : assignment operator could not be generated
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(602) : see reference to class template instantiation 'QHashDummyNode<Key,T>' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(600) : while compiling class template member function 'void QHash<Key,T>::detach_helper(void)'
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(322) : see reference to function template instantiation 'void QHash<Key,T>::detach_helper(void)' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(266): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(265) : while compiling class template member function 'void QMapNode<Key,T>::destroySubTree(void)'
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(236) : see reference to function template instantiation 'void QMapNode<Key,T>::destroySubTree(void)' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(236) : see reference to class template instantiation 'QMapNode<Key,T>' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(234) : while compiling class template member function 'void QMapData<Key,T>::destroy(void)'
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(344) : see reference to function template instantiation 'void QMapData<Key,T>::destroy(void)' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(333) : see reference to class template instantiation 'QMapData<Key,T>' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(333) : while compiling class template member function 'QMap<Key,T>::QMap(void)'
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qvariant.h(772) : see reference to function template instantiation 'QMap<Key,T>::QMap(void)' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qvariant.h(501) : see reference to class template instantiation 'QMap<Key,T>' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(268): warning C4127: conditional expression is constant
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qmap.h(270): warning C4127: conditional expression is constant
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(366): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(365) : while compiling class template member function 'void QList<T>::node_construct(QList<T>::Node *,const T &)'
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(515) : see reference to function template instantiation 'void QList<T>::node_construct(QList<T>::Node *,const T &)' being compiled
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(733) : while compiling class template member function 'QList<T>::QList(const QList<T> &)'
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qstringlist.h(66) : see reference to function template instantiation 'QList<T>::QList(const QList<T> &)' being compiled
1>          with
1>          [
1>              T=QString
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(367): warning C4127: conditional expression is constant
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(382): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(381) : while compiling class template member function 'void QList<T>::node_destruct(QList<T>::Node *)'
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(535) : see reference to function template instantiation 'void QList<T>::node_destruct(QList<T>::Node *)' being compiled
1>          with
1>          [
1>              T=QString
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(383): warning C4127: conditional expression is constant
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(390): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(388) : while compiling class template member function 'void QList<T>::node_copy(QList<T>::Node *,QList<T>::Node *,QList<T>::Node *)'
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(741) : see reference to function template instantiation 'void QList<T>::node_copy(QList<T>::Node *,QList<T>::Node *,QList<T>::Node *)' being compiled
1>          with
1>          [
1>              T=QString
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(403): warning C4127: conditional expression is constant
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(563): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(560) : while compiling class template member function 'QHashNode<Key,T> *QHash<Key,T>::createNode(uint,const Key &,const T &,QHashNode<Key,T> **)'
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(782) : see reference to function template instantiation 'QHashNode<Key,T> *QHash<Key,T>::createNode(uint,const Key &,const T &,QHashNode<Key,T> **)' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(884) : while compiling class template member function 'void QHash<Key,T>::reserve(int)'
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qvariant.h(757) : see reference to function template instantiation 'void QHash<Key,T>::reserve(int)' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(550): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(548) : while compiling class template member function 'void QHash<Key,T>::duplicateNode(QHashData::Node *,void *)'
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(603) : see reference to function template instantiation 'void QHash<Key,T>::duplicateNode(QHashData::Node *,void *)' being compiled
1>          with
1>          [
1>              Key=QString,
1>              T=QVariant
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qvector.h(290): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qvector.h(289) : while compiling class template member function 'void QVector<T>::destruct(T *,T *)'
1>          with
1>          [
1>              T=QTextLength
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qvector.h(452) : see reference to function template instantiation 'void QVector<T>::destruct(T *,T *)' being compiled
1>          with
1>          [
1>              T=QTextLength
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qvector.h(451) : while compiling class template member function 'void QVector<T>::freeData(QTypedArrayData<T> *)'
1>          with
1>          [
1>              T=QTextLength
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qvector.h(76) : see reference to function template instantiation 'void QVector<T>::freeData(QTypedArrayData<T> *)' being compiled
1>          with
1>          [
1>              T=QTextLength
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtGui/qtextformat.h(349) : see reference to class template instantiation 'QVector<T>' being compiled
1>          with
1>          [
1>              T=QTextLength
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(216): warning C4512: 'QHashNode<Key,T>' : assignment operator could not be generated
1>          with
1>          [
1>              Key=int,
1>              T=QItemEditorCreatorBase *
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(542) : see reference to class template instantiation 'QHashNode<Key,T>' being compiled
1>          with
1>          [
1>              Key=int,
1>              T=QItemEditorCreatorBase *
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(538) : while compiling class template member function 'void QHash<Key,T>::deleteNode2(QHashData::Node *)'
1>          with
1>          [
1>              Key=int,
1>              T=QItemEditorCreatorBase *
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(589) : see reference to function template instantiation 'void QHash<Key,T>::deleteNode2(QHashData::Node *)' being compiled
1>          with
1>          [
1>              Key=int,
1>              T=QItemEditorCreatorBase *
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(588) : while compiling class template member function 'void QHash<Key,T>::freeData(QHashData *)'
1>          with
1>          [
1>              Key=int,
1>              T=QItemEditorCreatorBase *
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qhash.h(301) : see reference to function template instantiation 'void QHash<Key,T>::freeData(QHashData *)' being compiled
1>          with
1>          [
1>              Key=int,
1>              T=QItemEditorCreatorBase *
1>          ]
1>          c:\qt\5.2.0\msvc2012\include\qtwidgets\qitemeditorfactory.h(112) : see reference to class template instantiation 'QHash<Key,T>' being compiled
1>          with
1>          [
1>              Key=int,
1>              T=QItemEditorCreatorBase *
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(424): warning C4127: conditional expression is constant
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(423) : while compiling class template member function 'void QList<T>::node_destruct(QList<T>::Node *,QList<T>::Node *)'
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(696) : see reference to function template instantiation 'void QList<T>::node_destruct(QList<T>::Node *,QList<T>::Node *)' being compiled
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(432) : while compiling class template member function 'QList<T> &QList<T>::operator =(const QList<T> &)'
1>          with
1>          [
1>              T=QString
1>          ]
1>          C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(855) : see reference to function template instantiation 'QList<T> &QList<T>::operator =(const QList<T> &)' being compiled
1>          with
1>          [
1>              T=QString
1>          ]
1>C:\Qt\5.2.0\msvc2012\include\QtCore/qlist.h(426): warning C4127: conditional expression is constant
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #13 : Июль 04, 2014, 14:23 »

Цитировать
TestMSVC.cpp(6): warning C4309: '=' : truncation of constant value
с 3 не выдает этого?

исходный вопрос решен. остальное — «сопутствующий ущерб» Улыбающийся

edit: вот не поленился и создал проект, включил уровень 2:
Код:
1>main.cpp(8): warning C4309: '=' : truncation of constant value
а тонна ворнингов из Qt посыпалась только с -Wall
« Последнее редактирование: Июль 04, 2014, 14:28 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #14 : Июль 04, 2014, 14:34 »

Цитировать
TestMSVC.cpp(6): warning C4309: '=' : truncation of constant value
с 3 не выдает этого?

исходный вопрос решен. остальное — «сопутствующий ущерб» Улыбающийся
Тут один ущерб, это он вякает на предыдущую строку. Поставьте
Код
C++ (Qt)
str[0] = char(0xC3);
- и нема варнингов ни с 2 ни с 3
Записан
Страниц: [1] 2 3 4   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.113 секунд. Запросов: 23.