Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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



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

сколько стоит решение?
NellyM вне форума   Ответить с цитированием
Старый 08.12.2016, 11:23   #12
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 8,626
Репутация: 1341

icq: 216409213
По умолчанию

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

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 в 11:48.
NellyM вне форума   Ответить с цитированием
Старый 08.12.2016, 11:48   #14
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 8,626
Репутация: 1341

icq: 216409213
По умолчанию

Цитата:
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, 11:50   #15
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 11,557
Репутация: 2366

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от NellyM Посмотреть сообщение
чтоб выводились действительно читабельные символы
не надо их читаемыми делать для передачи.
Я ж говорил уже, перед передачей .toUtf8, после получения QString::fromUtf8 обратно.
Alex11223 вне форума   Ответить с цитированием
Старый 08.12.2016, 11:54   #16
NellyM
Новичок
 
Регистрация: 06.12.2016
Сообщений: 25
Репутация: 10
По умолчанию

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, 11:57   #17
NellyM
Новичок
 
Регистрация: 06.12.2016
Сообщений: 25
Репутация: 10
По умолчанию

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

Что вводится - кириллица или латиница?
waleri вне форума   Ответить с цитированием
Старый 08.12.2016, 11:58   #19
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 11,557
Репутация: 2366

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Дык не выводите char, 2 раза уже написал, конвертируйте обратно в QString — QString::fromUtf8.
Alex11223 вне форума   Ответить с цитированием
Старый 08.12.2016, 12:00   #20
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 8,626
Репутация: 1341

icq: 216409213
По умолчанию

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



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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 23:43
QAbstractItemModel -> QString iukash Qt и кроссплатформенное программирование С/С++ 8 20.02.2011 06:00




05:37.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
таргетированный трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru