[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    существует аналог ф-ции lseek для символьных массивов данных?То есть что бы можно было получить указатель на чтение в таком массиве через заданное кол-во байт.
     
  2. w_2k

    w_2k New Member

    Joined:
    23 Jul 2008
    Messages:
    29
    Likes Received:
    1
    Reputations:
    0
    Всем доброго времени суток! Возникла такая проблемка с объявлением двумерного массива в Visual Studio 2008:
    Выдает следующее:
    Вроде массив объявил верно, GCC под линуксом компилирует без проблем.
     
  3. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Неправда, такое откомпилится любым компилятором... Или у тебя что-то там ещё имеет неправильный синтаксис, либо я не знаю...
     
  4. herfleisch

    herfleisch Elder - Старейшина

    Joined:
    7 Jan 2009
    Messages:
    579
    Likes Received:
    203
    Reputations:
    13
    Кто подскажет: можно ли сделать вот так:
    Code:
    ...
    
    struct MailPass
    {
    	char *mail;
    	char *pass;
    };
    
    ...
    
    int main(void)
    {
        ....
        MailPass *	CurrentMailPassPointer;
        MailPass	CurrentMailPass;
        ...
        CurrentMailPassPointer = MailPassRead(MailPassList);
    		CurrentMailPass.mail = (* CurrentMailPassPointer).mail;
    		CurrentMailPass.pass = (* CurrentMailPassPointer).pass;
    
    ...
    }
    
    MailPass *MailPassRead(FILE *fd)
    {
           ......
           MailPass mailpass;
    	char a[255] = "\0";
    	mailpass.mail = new char[sizeof(strtok(a,";"))];
    	mailpass.pass = new char[sizeof(strtok(0,";"))];
    	strcpy(mailpass.mail,strtok(a,";"));
    	strcpy(mailpass.pass,strtok(0,";"));
             ....
    	return &mailpass;
    }
    
    
     
  5. w_2k

    w_2k New Member

    Joined:
    23 Jul 2008
    Messages:
    29
    Likes Received:
    1
    Reputations:
    0
    Полазил, поискал ошибку...так и не разобрался. Вот код целиком:

    Добавленно позже: Странно...почему форматирование не сохранилось?
     
  6. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Добавляй в тег
    Code:
    
    
     
  7. w_2k

    w_2k New Member

    Joined:
    23 Jul 2008
    Messages:
    29
    Likes Received:
    1
    Reputations:
    0
    Не-а. Теперь еще и ругается на то, что count неизвестная переменная(ссылаясь сюда if(count>0){count--;})
     
  8. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    w_2k

    1. Не используй инлайн функции(это функции, которые определены в самом классе). Их содержимое как-бы копируется на место вызова, что приводит к плохим последствиям. Выноси все отдельно в файл.

    2. Не используй srand(time(NULL)); в цикле, т.к идет постоянная привязка к одному и тому же времени. Выноси за цикл.



    3. Проблема твоя в том, что ты указываешь статический массив по дефолту. Такое не допустимо при создании объекта. Выделяй память динамически в конструкторе(да и не забудь написать копир конструктора):

    PHP:
    #include <stdlib.h>
    #include <iostream>
    #include <iomanip>
    #include <time.h>

    using namespace std;

    class 
    Koloda
    {
    private:
        
    int count;
                
    int ** cards;
    public:    
     
    Koloda(int c){count=c;}
    Koloda()
    {
          
    count=36;
          
    int ** cards = new int*[2];     //двумерный массив
          
    for(int i 02i++)
          {
             
    cards[i] = new int[2];
             for(
    int j 02j++)
             {
                 
    cards[i][j] = 0;
             }
          }
          
    cards[0][0] = 6;
          
    cards[0][1] = 7;
          
    cards[1][0] = 1;
          
    cards[1][1] = 2;
    }

    ~
    Koloda()
    {
          for(
    int i 02i++)
          {          
             
    delete cards[i];
          }
          
    delete cards;
    }

    void Take_card(){
        
    int i;
        
    int j;
                
    srand(time(NULL));
        do {
            
            
    rand()%9;
            
    rand()%4;
        }
        while(
    cards[i][j]!=0);
        
    cards[i][j]=0
        if(
    count>0){count--;}
        else{
            
    cout << "Карт больше нет";
        }

    }
    };



    Herflrish, а почему нет?! Только не забудь удалять указатели...
     
    #2208 Chaak, 29 Jan 2009
    Last edited: 29 Jan 2009
  9. w_2k

    w_2k New Member

    Joined:
    23 Jul 2008
    Messages:
    29
    Likes Received:
    1
    Reputations:
    0
    Благодарю) убрал только у конструктора тип и всё скомпилировалось) Спасиба огромное)
     
  10. herfleisch

    herfleisch Elder - Старейшина

    Joined:
    7 Jan 2009
    Messages:
    579
    Likes Received:
    203
    Reputations:
    13
    Потому что по окончании работы функции область памяти, на которую ссылается указатель, никем ведь уже не контролируется по-моему. Вроде бы именно в этом случае в режиме Debug всё работает, а в Release - нет.
     
  11. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Ты же ссылку возвращаешь, что тебе мешает удалить снаружи?

    как вариант объяви как статик
     
  12. rudvil

    rudvil Elder - Старейшина

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Пишу код на с++ в некоторых местах нужно конвертировать int в string,вот собственно и вопрос как это сделать?
    Нашел в инете конвертер int в string но он странным образом не работает,точнее компилятор пишет ошибку
    Code:
    error C2228: left of '.str' must have class/struct/union
    warning C4552: '>>' : operator has no effect; expected operator with side-effect
    
    сам код
    Code:
        std::ostringstream stm;
        // Output an int
        stm << 2500;
        // Retrieve the resulting string
        std::cout << stm.str() ;
        return 0;
    
    вот откуда брал код
    int to string
     
    #2212 rudvil, 30 Jan 2009
    Last edited: 30 Jan 2009
  13. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Если работаешь в борландской IDE то AnsiString(число)Есть ещё стандартные Ecvt,Fcvt,Gcvt
     
  14. rudvil

    rudvil Elder - Старейшина

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    компилирую из под Visual C++2008
    itoa() тоже не прокатывает =[
    возможно нужно что-то инклудить? но я хз что и зачем...
     
  15. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    #include <iostream>
    #include <string>
    #include <conio.h>

    using namespace std;


    void main()
    {
        
    int a 123;

        static 
    char b[10] = "\0";
        
    _itoa_s(ab10);
        
        
    string str b;

        
    cout<<b;
        

        
    _getch();
    }
     
    2 people like this.
  16. rudvil

    rudvil Elder - Старейшина

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    спасибо,заработало)
     
  17. arser

    arser New Member

    Joined:
    2 Feb 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    дайте код
    чтобы при нажатие кнопки я уходил на какой-то сайт плиз ответьт скорей
     
  18. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 arser всмысле уходил?? Задачу по корректнее поставь
     
  19. awdrg

    awdrg Member

    Joined:
    30 Jan 2009
    Messages:
    195
    Likes Received:
    31
    Reputations:
    1
    Подскажте пожалуйста, возможно и реализовать на C++ такую фишку (для компиляции под никсами и последующим запуском в консоли):
    Открывается сокет.
    В массив считывается часть определенной странички из интернета (или некоторые переменные).
    Если возможно, то приведите в пример простейшую реализацию. Если вопрос поставлен не слишком корректно - сорри, я еще учусь :D
     
    #2219 awdrg, 2 Feb 2009
    Last edited: 2 Feb 2009
  20. vikseriq

    vikseriq Elder - Старейшина

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    2arser
    Code:
    C#
         private void button1_Click(object sender, EventArgs e)
            {
                this.webBrowser1.Navigate("http://forum.antichat.ru/");
            }
    
     
Thread Status:
Not open for further replies.