ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #4561  
Старый 24.12.2009, 20:26
Аватар для St0nX
St0nX
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме:
2823587

Репутация: 106
Отправить сообщение для St0nX с помощью ICQ
По умолчанию

Цитата:
Сообщение от razb  
что значит не прокатывало? яснее опиши проблему, а лучше выложи код.
Делаю так:
класс какого то объекта на форме:
PHP код:
#ifndef OBJECT_H
#define OBJECT_H

#include <QGraphicsScene>



class Object : public QGraphicsScene
{
Q_OBJECT
public:
    
Object(QObject *parent 0);
    
int posit;
    
int mas[3][3];
protected:
    
virtual void mousePressEvent(QGraphicsSceneMouseEvent mouseEvent);
};

#endif // OBJECT_H 
Класс в котором проходят некие вычисления:

PHP код:
#ifndef XO_II_H
#define XO_II_H

struct crd
{
int x;
int y;
};

class 
xo_ii
{
public:
    
int mas[3][3];
    
xo_ii();
    
crd CrdOpr(int poss);
private:
    
int SummStr(int nStr);
    
int SummDl1();
    
int SummDl2();
    
crd OprNullStr(int nStr);
    
crd OprNullDl1();
    
crd OprNullDl2();
}; 
Класс самой формы:

PHP код:
#ifndef WIDGET_H
#define WIDGET_H

#include <QMainWindow>
#include "ui_mainwindow.h"

class Object;
class 
xo_ii;

class 
MainForm : public QMainWindow, public Ui::XO
{
Q_OBJECT
public:
    
MainForm();
private:
    
Object sc;
    
xo_ii xoii;
};

#endif // WIDGET_H 
PHP код:
#include "widget.h"
#include "object.h"
#include "xo_ii.h"

MainForm::MainForm()
{
    
setupUi(this);
    
xoii = new xo_ii;
    
sc = new Object;
    
sc->mas xoii->mas;
    
sc->posit 1;
    
graphicsView->setScene(sc);

Данная схема не работает
ошибка с троке
sc->mas = xoii->mas;
/home/kubik/XO/xo_test/XO/widget.cpp:11: error: invalid array assignment
 
Ответить с цитированием

  #4562  
Старый 24.12.2009, 22:19
Аватар для razb
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Цитата:
sc->mas = xoii->mas;
/home/kubik/XO/xo_test/XO/widget.cpp:11: error: invalid array assignment
ты хоть читаешь что компилятор пишет?
Код:
for(int i = 0; i < 3; i++)
{
    for(int j = 0; j < 3; j++)
    {
       sc->mas[i][j] = xoii->mas[i][j];
    }
}
Вообще лучше делать данные поля закрытыми и обращатся к ним через геттеры/сеттеры.
 
Ответить с цитированием

  #4563  
Старый 24.12.2009, 22:28
Аватар для St0nX
St0nX
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме:
2823587

Репутация: 106
Отправить сообщение для St0nX с помощью ICQ
По умолчанию

Цитата:
Сообщение от razb  
ты хоть читаешь что компилятор пишет?
Код:
for(int i = 0; i < 3; i++)
{
    for(int j = 0; j < 3; j++)
    {
       sc->mas[i][j] = xoii->mas[i][j];
    }
}
Вообще лучше делать данные поля закрытыми и обращатся к ним через геттеры/сеттеры.
При использовния данной конструкции я тупо копирую массив 1 в другой. А мне как бы надо что бы была одна ссылка на область памяти(массив) и я ее мог изменять во всех классах и так же при изменение в одном классе изменения отражались во всех
 
Ответить с цитированием

  #4564  
Старый 24.12.2009, 23:46
Аватар для Aag
Aag
Познающий
Регистрация: 26.07.2005
Сообщений: 54
Провел на форуме:
47901

Репутация: 46
По умолчанию

Цитата:
Сообщение от Admin Derek  
объясните что я не так сделал, изучаю сокеты, по книге "Эффективное программирование TCP/IP", но не как не пойму в чём ошибка. процесс останавливаеться на error socket..
WSAStartup, WSACleanup

Сравни свой код с одним из примеров из msdn
Код:
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "wininet.lib")

int main(void) {

  //----------------------
  // Initialize Winsock.
  WSADATA wsaData;
  int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
  if (iResult != NO_ERROR) {
    printf("Error at WSAStartup()\n");
    return 1;
  }

  //----------------------
  // Create a SOCKET for listening for
  // incoming connection requests.
  SOCKET ListenSocket;
  ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  if (ListenSocket == INVALID_SOCKET) {
    printf("Error at socket(): %ld\n", WSAGetLastError());
    WSACleanup();
    return 1;
  }

  //----------------------
  // The sockaddr_in structure specifies the address family,
  // IP address, and port for the socket that is being bound.
  sockaddr_in service;
  service.sin_family = AF_INET;
  service.sin_addr.s_addr = inet_addr("127.0.0.1");
  service.sin_port = htons(27015);

  if (bind( ListenSocket, 
    (SOCKADDR*) &service, 
    sizeof(service)) == SOCKET_ERROR) {
    printf("bind() failed.\n");
    closesocket(ListenSocket);
    WSACleanup();
    return 1;
  }

  //----------------------
  // Listen for incoming connection requests.
  // on the created socket
  if (listen( ListenSocket, 1 ) == SOCKET_ERROR) {
    printf("Error listening on socket.\n");
    closesocket(ListenSocket);
    WSACleanup();
    return 1;
  }

  //----------------------
  // Create a SOCKET for accepting incoming requests.
  SOCKET AcceptSocket;
  printf("Waiting for client to connect...\n");

  //----------------------
  // Accept the connection.
  AcceptSocket = accept( ListenSocket, NULL, NULL );
  if (AcceptSocket == INVALID_SOCKET) {
    printf("accept failed: %d\n", WSAGetLastError());
    closesocket(ListenSocket);
    WSACleanup();
    return 1;
  } else 
    printf("Client connected.\n");
  
  // No longer need server socket
  closesocket(ListenSocket);

  WSACleanup();
  return 0;
}
 
Ответить с цитированием

  #4565  
Старый 25.12.2009, 14:24
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

скажите пожалуйста, как грамотно содержимое файла занести в массив строк типа string? размер файл заранее неизвестен.

на данный момент я могу прочитать все в одну строку.
как бы сделать универсальную функцию, которая возвращает массив со строками, чтобы этот массив можно было объявлять без указания размера?

типа

string []rows = loadFile("rows.txt");
 
Ответить с цитированием

  #4566  
Старый 26.12.2009, 15:14
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

открываю файл

ifstream fin("file.txt");

копирую его в вектор, типа string

copy(istream_iterator<string>(fin), istream_iterator<string>(), back_inserter(vect));

получаю вектор в котором файл разбит на элементы по ПРОБЕЛАМ

как сделать так, чтобы он разбивал по переводам строк?
 
Ответить с цитированием

  #4567  
Старый 26.12.2009, 16:09
Аватар для ASQX
ASQX
Познающий
Регистрация: 21.06.2008
Сообщений: 57
Провел на форуме:
633209

Репутация: 44
Отправить сообщение для ASQX с помощью ICQ
По умолчанию

посоветуйте книгИ по С,
С != С++
 
Ответить с цитированием

  #4568  
Старый 26.12.2009, 16:22
Аватар для jawbreaker
jawbreaker
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
Провел на форуме:
1027635

Репутация: 234
По умолчанию

 
Ответить с цитированием

  #4569  
Старый 26.12.2009, 16:27
Аватар для jawbreaker
jawbreaker
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
Провел на форуме:
1027635

Репутация: 234
По умолчанию

Цитата:
Сообщение от Дикс  
открываю файл

ifstream fin("file.txt");

копирую его в вектор, типа string

copy(istream_iterator<string>(fin), istream_iterator<string>(), back_inserter(vect));

получаю вектор в котором файл разбит на элементы по ПРОБЕЛАМ

как сделать так, чтобы он разбивал по переводам строк?
PHP код:
#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    
ifstream fin("input.txt");
    
vector <stringv;
    
string tmp;

    while (
getline(fintmp))
    {
        
v.push_back(tmp);
        
cout << tmp << "\n";
    }
    
cin.get();
    return 
0;

 
Ответить с цитированием

  #4570  
Старый 27.12.2009, 00:29
Аватар для ASQX
ASQX
Познающий
Регистрация: 21.06.2008
Сообщений: 57
Провел на форуме:
633209

Репутация: 44
Отправить сообщение для ASQX с помощью ICQ
По умолчанию

есть емаксеры? :\
тут такая проблема,

;; ECB
(add-to-list 'load-path "~/emacs.d/ecb-snap/")
(require 'ecb)
(global-set-key (kbd "\e\el") 'ecb-toggle-ecb-windows)
(global-set-key (kbd "\e\eea") 'ecb-activate)
(global-set-key (kbd "\e\eed") 'ecb-deactivate)

чего тут не так? хочу сделать из емакса ide под С++


// вопрос отпал, скачал с сорцефорце ecb и сменил бинд на другие кнопки,

Последний раз редактировалось ASQX; 27.12.2009 в 01:14..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ