[ 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. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    это не какие то магические ошибки. они вполне четко описывают проблему. поэтому читай сообщение и исправляй.

    почитай тогда книжку "Как программировать на с++". От этого будет больше толка.
     
  2. Djezul

    Djezul New Member

    Joined:
    8 Dec 2008
    Messages:
    43
    Likes Received:
    2
    Reputations:
    0
    я читаю выражение слева от ".hp" должно представлять класс, структуру или объединение , но оно и представляет структуру или обьединение

    я читаю арена не обьявлена, хотя у меня всё обьёвлено
     
  3. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Вообщем насколько я понял твои функции не знают об объектах, которые ты пытаешься использовать. Передавай им объекты по ссылке.
    + учись сразу разбивать код на модули, очень сложно читать все сразу.
     
  4. Lee_fx

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

    Joined:
    27 Sep 2008
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    ...
    personaj player,computer;
    bool Arena(personaj player);
    void main()
    ...
     
  5. Jakeroid

    Jakeroid Member

    Joined:
    9 May 2009
    Messages:
    199
    Likes Received:
    12
    Reputations:
    1
    Сейчас читаю книгу Джесса Либерти "С++ за 21 день". Все ясно и хорошо. НО, хотелось бы еще что нибудь про работу с файлами, открытие сокетов и так далее. Что можите посоветовать? Желательно что-то для начинающего и то, что есть в сети. Потому, что возможности купить нет совсем.
     
  6. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    главное понять суть с++. про работу с файлами читай в мсдн(потоки с++ или api на выбор). по сетевому программированию все немного сложнее. для начала хватит того же мсдн. статьи на rsdn так же помогут. из книжек сложно что либо посоветовать. тут важнее опыт, ибо все зависит от типа программы. бывает достаточно просто открыть сокет передать и все. в более серьезных программах передать на сокеты инфу - это самая тривиальная часть. подсистема работы с сетью может содержать и пул потоков, и реализацию протокола своего, замарочки с синхронизацией. так что тут нет особого рецепта. хотя если кто подкинет толковую книжку - буду благодарен.
     
  7. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Небольшое уточнение, это все поможет если собираешься писать под win )
    Под nix очень большая библиотека документации находится тут _http://www.codase.com/linux.html
     
  8. Jakeroid

    Jakeroid Member

    Joined:
    9 May 2009
    Messages:
    199
    Likes Received:
    12
    Reputations:
    1
    Спасибо. Я пока собераюсь писать по винь. Ладно буду копаться и дальше читать книжку свою :)

    О, еще вопросик. Где найти книженцию иил список задачек для тренеровки языка С++? А то в голову не лезут идеи, а тренироваться надо. И желательно что-то НЕ вроде "вывести на экран слово...", а че нить повеселее.
     
    #3108 Jakeroid, 10 Jun 2009
    Last edited: 10 Jun 2009
  9. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Мозговой 85 нетривиальных проектов, решений и задач.djvu
    не очень с с++ связано, зато раздолье для фантазии. чтобы использовать на всю мощь плюсы нада хорошо понимать, что они дают. активно юзать классы, наследование. там есть некоторые задачки, которые очень интересно решить немного посидев попроектировав классы.
     
    1 person likes this.
  10. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    рекомендую реализовывать фундаментальыне алгоритмы Кнута и Сэджвика - это практика не только в языке, но и в мозговой деятельности.
    Например, хэш-таблицы и сбаллансированные деревья - это отличная практика и в понимании языки, и логики вещей.
     
    #3110 ss88, 11 Jun 2009
    Last edited: 11 Jun 2009
  11. SHARA

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

    Joined:
    26 May 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    Здрасте. У меня проблема следующего характера. Новичок в С++
    Писал тренировочную программу, которая запрашивает пароль, при правильном вводе пароле открывается меню с дальнейшим выбором действий. Ошибка происходит где в функции inform_employee() как мне кажется, что-то я напортачил с массивами строк,
    Пример кода
    Code:
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    using namespace std;
    bool password();
    int option();
    void inform_employee(); 
    void inform_sales();
    int menu;
    int main()
        {
                                      
                   if (password()) {
                                     do {  
                                            menu=option();
                                            switch(menu) {
                                            case 1:
                                            inform_employee();
                                            break;
                                            case 2:
                                            inform_sales();
                                            break; 
                                            case 3:
                                         cout<<"Exit";
                                      break;
                                }
                                                    } while (menu !=3);
                                         
                                           
                     }
                   else cout<<"Deny"<<endl;
                    
                  return 0;
      }  
    bool password()
         {
            char s[60];
            cout<<"Enter Yout password"<<endl;
            gets(s);
            if(strcmp(s, "password")) {
                                            cout<<" Otcazano";
                                            return false;
                                                   }
    
             return true;
    }
    int option()
                           {
                                 cout<<"Hellow, Welcome to Database"<<endl;
                                 cout<<"Enter any option"<<endl;
                                 cout<<" 1.Information about employee "<<endl;
                                 cout<<" 2.Information about Sales"<<endl;
                                 cout<<"3. Exit"<<endl;
                                 cin>>menu;
                         return menu;
       }
    void inform_employee () 
                                        {
                                                 const char s2 [20] [50] = {
                                                                            
                                                                          {"Sokolov Anton Nikolaevich"}
                                                                          {"Ivanov Ivan Ivanovich"}
                                                                          {"Petov Alexander Alekseevich"}
                                                                          {"Nikitin Andrew Viktorovich"}
                                                                          {"Ingener Yuriy Alexandrovich"}
                                                                          {"Dzuba Yaroslav Igorovich"}
                                                                          {"Rastegaev Alexander Vladimirovich"}
                                                                          {"Platonov Ivan Anatolevich"}
                                                                          {"Sosin Igor Borisovich"}
                                                                          {"Angirova Amuly Blyd'"}
                                                                          {"Ageeva Dasha Blyd'"}
                                                                          {"Saxnik Pavel Vycheslavovich"}
                                                                          {"Malofeev Kirill Olegovich"}
                                                                          {"Gumensky Aleksey Gnusovich"}
                                                                          {"Kycherenko Ivan Petrovich"};
    }
                                                        
         
                                                             cout<< s2 [20] [50]<<" "; 
    }                 
    void inform_sales()
                                            {   
                                                              float t;
                                                              float s3 [20];
                                                              for (t=0; t<15; t++) s[t]=rand();
                                                              for (t=0; t<15; t++) cout<<s[t]<<" " <<endl;; 
                                                        
                                }
                                      
                                           
     
  12. _nic

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

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Почему в вижул студио на такой строчке
    Code:
    return(String(val).c_str());
    (val типа инт) Ошибка " error C2228: выражение слева от ".c_str" должно представлять класс, структуру или объединение" Неужели вижул студио неподдерживает сишный стринг???? да иещё ругается что простанства имен std несуществует ,это как понимать?
     
    #3112 _nic, 11 Jun 2009
    Last edited: 11 Jun 2009
  13. new-sl

    new-sl New Member

    Joined:
    27 May 2009
    Messages:
    46
    Likes Received:
    0
    Reputations:
    -1
    как зделать перехват нажатия клавиш смпомощю SetWindowHookEx и как создать ддл я искал находил тока на англиском но я в англиском несилён
     
  14. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Во первый std класс string пишется с маленькой буквы s.
    Во вторых у тебя не создан обьект типа string

    Пример:
    Code:
        int i = 16;
        char buffer[10];
        string str(itoa(i, buffer, 9));
        cout << str.c_str() << endl;
    Что бы избежать itoa, etc. можно использовать stringstreams, например:

    Code:
        ostringstream oss;
        i = 7;
        oss << i;
        cout << oss.str() << endl;
     
    #3114 razb, 11 Jun 2009
    Last edited: 11 Jun 2009
  15. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    во первых не задавай размеры массивов, если инициализируешь прямо при объявлении

    const char s2 [] [] = {

    во вторых что ты хотел сделать строкой cout<< s2 [20] [50]<<" "; . Если вывести все записи - то ты должен обойти в цикле весь массив. число записей высчитывается так
    sizeof(s2)/sizeof(s2[0])
     
  16. SHARA

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

    Joined:
    26 May 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    Понятно
    да инструкцией
    Code:
     cout<< s2 [20] [50]<<" ";
    хотел вывести все записи. Ошибку понял.
    А после того как я высчитаю число записей. Как мне их выводит через cout. Я немного не понял.
    Заранее спасибо
     
  17. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Mozy
    креативный способ, но проще так

    for( int i=0; i < sizeof(s2) / sizeof(s2[0]); i++){
    cout << s2<<endl;
    }
     
  18. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    а самому по докам полазить нельзя? это не математика, где от вас требуется типовое решение. есть язык - используй все его средства. делаешь на си - делаешь без классов и stl. лаба на с++ - юзаешь и классы и stl. отмазка "это мы не проходили" канала в школе. программингу кстати не учат, программингу учатся. не думайте, что преподы дадут вам всю инфу. они дай бог научат основам языка и кривейшим способам создания и форматирования кода. остальное на вашей совести.
     
  19. mr.The

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

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    Что в с++ с сравнением бинарных данных? =\

    где bin.txt 15-ти байтных файл с бинарными данными. "Ololo\n" не выводится. Почему?
     
  20. Irdis

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

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    т.к. ты сравниваешь адреса в памяти, а не данные по этим адресам
     
    #3120 Irdis, 11 Jun 2009
    Last edited: 11 Jun 2009
Thread Status:
Not open for further replies.