QString -> char |
Здравствуйте, гость ( Вход | Регистрация )
QString -> char |
Гость_Игорь_* |
30.10.2010, 18:02
Сообщение
#1
|
Гости |
Здравствуйте, программисты!
Вот сложность возникла. Нужно написать прогу кроссплатформенную на Qt, но там не все прокатывает, что прокатывает в обычном С++. Вот код:
В обычном си++ компилит нормально и запускается, а здесь компилятор ругается. Он показывает на последнюю строчку и пишет "cannot convert "QCharRef' to 'char' in assignment". Что делать? |
|
|
Алексей1153 |
30.10.2010, 18:12
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
...=user.c_str();
только при чём тут QString - непонятно а ещё, складывается впечатление, что что-то недоговаривается. Какая задача то ? Сообщение отредактировал Алексей1153 - 30.10.2010, 18:11 |
|
|
Гость_Игорь_* |
30.10.2010, 18:24
Сообщение
#3
|
Гости |
Да это я продолжаю темы из предыдущего топика, где мне надо было в командную строку передать команды.
Прошу прощения, пример вытащил, не задумываясь о синтаксисе, из обычного с++. Вот как код выглядит у меня в Qt:
Во втором варианте компиль нугается: "'class QString' has no member named 'c_str'" |
|
|
Алексей1153 |
30.10.2010, 18:26
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
имхо, нужно сделать как в начале, только вот так
const char* user="Строчка"; const char* user="Администратор"; const char* pass="123"; const char* qwe2="net user "; |
|
|
Гость_Игорь_* |
30.10.2010, 18:34
Сообщение
#5
|
Гости |
Тут идея вот в чем, переменные user и pass будут передаваться этой программе строкой, поэтому я заморачиваюсь со стрингом
|
|
|
Алексей1153 |
30.10.2010, 18:37
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
так передавай как const char* да и всё
а вытащить указатель на строку можно так: constData() |
|
|
Гость_Игорь_* |
30.10.2010, 19:09
Сообщение
#7
|
Гости |
При отладочной компиляции: Цитата Приложение остановлено, так как оно получило сигнал от операционной системы. Сигнал: SIGSEGV Назначение: Segmentation fault При обычной компиляции: Цитата Запускается С:\Qt\2010.05\qt\Clients-build-desktop\debucj\Clients.exe... C:\Qt\2010.05\qt\C3^ents-huild-desktop\dehutj\Clients.exe завершился с кодон -1073741819 Если убрать комментарии с system(qwe2); то ошибка: "cannot convert 'const char**' to 'const char*' for argument 'Г to 'int system(const char*)'" Убираю со всех переменных слово const, ошибка "cannot convert char** to const char* for argument 1 to int system(const char*)" |
|
|
Гость_Игорь_* |
30.10.2010, 19:11
Сообщение
#8
|
Гости |
Сигнал был где первый цикл for(i=0;user[i]!=0;i++)qwe2[9+i]=user[i];
|
|
|
Алексей1153 |
30.10.2010, 19:31
Сообщение
#9
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Игорь, а я вовсе не так показывал. Откуда у тебя квадратные и фигурные скобки взялись?
Цитата const char* user[]={"Администратор"}; const char* pass[]={"123"}; а тут вообще капец Цитата const char* a[]={" "}; const char* qwe2[]={"net user "}; это должны быть переменные, а не константы. короче:
для чего тебе массив "a" - я не понял И, всё-таки, расскажи про задачу, а то хрень какую-то пишешь... |
|
|
kwisp |
30.10.2010, 19:31
Сообщение
#10
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Гость_Игорь_
код с циклами непонятен ни капли. зачем так делать ? опиши по-подробнее задачу словами. если ты из сигнала получаешь QString, а функция system принимает const char*, то в классе QString есть специализированные методы для преобразования .toAscii().constData() - вернет const char* |
|
|
Текстовая версия | Сейчас: 15.1.2025, 15:02 |