Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2016, 10:09   #11
NellyM
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 25
По умолчанию

сколько стоит решение?
NellyM вне форума Ответить с цитированием
Старый 08.12.2016, 10:23   #12
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Какое решение? Вы задачу не озвучили еще.
p51x на форуме Ответить с цитированием
Старый 08.12.2016, 10:38   #13
NellyM
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 25
По умолчанию

1)конвертировать из QString в Char чтоб выводились действительно читабельные символы и чтоб можно было передать в поток WRITE. затем обратно из Char в QString чтоб принять данные из потока.

пробовала так:
Код:
QString  send = widget.sendArea->text();
    // const char* sendline=send.toAscii().constData()  ;  
 //const char* sendline=send.toUtf8().constData();  
const char* sendline=send.toLatin1().constData();
ни что не работает

2)еще мне надо сделать открытие диалогового окна чтоб выбрать файл и потом его надо конвертировать из QFile в FILE чтоб тоже отправить в потому WRITE(). и нужно еще обратно из FILE в QFILE чтоб прочитать из потока read
ну я сама сделала вот что

Код:
QString filename =  QFileDialog::getOpenFileName(this,QString::fromUtf8("Open a file"), QDir::currentPath(),"Images(*.png *.xpm *.jpg);;All files (*.*)");

QFile myfile; 
myfile.setFileName(filename);
myfile.open(QIODevice::ReadOnly);

int fileHandle=myfile.handle();
FILE* fp= fdopen(fileHandle, "r");
только после выбора файла у меня программа вылетает с ошибкой

3)и вот эту ошибку понять не могу: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive]
ress = read(SocketFd,str,MAX_BUFFER); компилятор стрелочкой указывает вот где подчеркнула

в коде задавала так
Код:
int  SocketFd = ::accept(listener, (struct sockaddr*) NULL, NULL); 
         

        QString ress;      
    // bzero(str, MAX_BUFFER);  
    
      ress = read(SocketFd,str,MAX_BUFFER);

Последний раз редактировалось Alex11223; 08.12.2016 в 10:48.
NellyM вне форума Ответить с цитированием
Старый 08.12.2016, 10:48   #14
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
1)конвертировать из QString в Char чтоб выводились действительно читабельные символы и чтоб можно было передать в поток WRITE. затем обратно из Char в QString чтоб принять данные из потока.
Вам уже ответили, но встречные вопросы вы проигнорировали. В QString лежит правильная строка? На принимающей стороне та же кодировка, что и вы пытались сделать?

Цитата:
2)еще мне надо сделать открытие диалогового окна чтоб выбрать файл и потом его надо конвертировать из QFile в FILE чтоб тоже отправить в потому WRITE(). и нужно еще обратно из FILE в QFILE чтоб прочитать из потока read
Не надо вам этого делать. Если взяли Qt, то вперед. QFile все умеет.

Цитата:
3)и вот эту ошибку понять не могу: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive]
ress = read(SocketFd,str,MAX_BUFFER); компилятор стрелочкой указывает вот где подчеркнула
Вы хоть доку на функцию прочитайте: read возвращает размер, а не строку; данные записывает в указанный буфер и, естественно, он не может быть константным

Я вам уже говорил в другой теме, но повторюсь: не занимайтесь извращениям. Все что вам надо есть в Qt. Если взяли ее - используйте и забудьте о переходе к стандартным функциям.
p51x на форуме Ответить с цитированием
Старый 08.12.2016, 10:50   #15
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от NellyM Посмотреть сообщение
чтоб выводились действительно читабельные символы
не надо их читаемыми делать для передачи.
Я ж говорил уже, перед передачей .toUtf8, после получения QString::fromUtf8 обратно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.12.2016, 10:54   #16
NellyM
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 25
По умолчанию

1) символы не правильно выводятся даже на форму пользователя который отправляет. то есть вот как делаю
принимаю строку из sendArea

QString send = widget.sendArea->text();

// const char* sendline=send.toAscii().constData() ;
//const char* sendline=send.toUtf8().constData();
const char* sendline=send.toLatin1().constData( );

widget.ViewTextBrowser->append(sendline);
NellyM вне форума Ответить с цитированием
Старый 08.12.2016, 10:57   #17
NellyM
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 25
По умолчанию

и да, пока принимающая сторона имеет тип char потому что передаю на терминальный сервер написанный на Си
NellyM вне форума Ответить с цитированием
Старый 08.12.2016, 10:57   #18
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Что вводится - кириллица или латиница?
waleri вне форума Ответить с цитированием
Старый 08.12.2016, 10:58   #19
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык не выводите char, 2 раза уже написал, конвертируйте обратно в QString — QString::fromUtf8.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.12.2016, 11:00   #20
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
и да, пока принимающая сторона имеет тип char потому что передаю на терминальный сервер написанный на Си
Да хоть что он имеет, char просто описывает тип байт. Важна кодировка, в которой он выводит.
p51x на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
QString(с русскими символами) в Char ameks94 Qt и кроссплатформенное программирование С/С++ 1 29.05.2013 22:22
как исправить ошибку invalid conversion from const char* to char Ника К Помощь студентам 5 01.06.2012 00:13
Как преоброзовать char[][] в char*[]? WWer Общие вопросы C/C++ 4 25.05.2012 05:49
error C2440. Как конвертировать в 'void ' из 'char ' Mrbober Общие вопросы C/C++ 4 14.03.2011 22:43
QAbstractItemModel -> QString iukash Qt и кроссплатформенное программирование С/С++ 8 20.02.2011 05:00