[ 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
    Double2
    для начала код сюда вставь
     
  2. Dark_Scorpicore

    Joined:
    4 Apr 2009
    Messages:
    53
    Likes Received:
    8
    Reputations:
    0
    Привет, я снова с чертовыми нубскими вопросами :(
    Сначала немного предыстории: прежде чем написать свое первое оконное "приложение", думал, что же лучше, юзать конструктор windows forms из M$VS или писать на чистом Windows API. Остановился на втором. Изучал тонны манов, прежде чем получить заветное окно после нажатия f5(вообщем, каждую строку кода в своей программе объяснить смогу, хотя рвал из разных источников куски) :)

    В итоге получил что-то вроде этого (самый первый сорец; до слов Windows Messages
    Window Creation).

    Теперь возникает интерес, какие api-функции можно заюзать для "связи" моего кода (напомню, недавно вышел из консоли) и, например, текстбокса на форме, т.е. в текстбокс положить, допустим, значение переменной.

    Не обязательно сорец, можно просто названия, примеры сам найду.
     
  3. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    http://msdn.microsoft.com/en-us/library/bb773173%28VS.85%29.aspx
     
  4. Krems

    Krems New Member

    Joined:
    8 Feb 2009
    Messages:
    14
    Likes Received:
    1
    Reputations:
    0
    xD

    Почему строка "Again? y/n" выводится дважды и откуда в переменной gt лежит перевод строки ? =D

    Code:
    #include <stdio.h> 
    
    main() 
    {
     char gt='0';
    
     while(gt!='n') 
     {
      printf("Again? y/n\n");
      scanf("%c", &gt);
     } 
     return 0; 
    }
    
     
  5. _iks_

    _iks_ Member

    Joined:
    21 Feb 2009
    Messages:
    60
    Likes Received:
    59
    Reputations:
    61
    У меня выводится один раз.

    После функции scanf() автоматом осуществляется переход на следующую строку.
     
  6. Krems

    Krems New Member

    Joined:
    8 Feb 2009
    Messages:
    14
    Likes Received:
    1
    Reputations:
    0
    Ну мы на двух разных компах запускаем на одном Borland С++, на втором MSVisual Studio оба выводят строку два раза *WALL*
     
  7. Double2

    Double2 Banned

    Joined:
    9 Jan 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Ну... Это как бэ прога прикол :) Вот код:
    Code:
    #include <iostream>
    #include <cstdio>
    using namespace std;
    int ifansn()
    {
      cout << "You don't want to download and install upgrade.\n";
      cout << "Exiting...";
      return 0;
    }
    int ifansn2()
    {
      cout << "#Installation canceled by user\n";
      cout << "#Exiting...";
      return 0;
    }
    int ifansy2()
    {
      char* nothing;
      cout << "#Updates installing...\n";
      cout << "#.......30%";
      cout << "#................50%";
      cout << "#.................................100%";
      cout << "#Great! Update installed, need reboot!";
      cin >> nothing;
    }
    int ifansy()
    {
      char* otv2;
      cout << "#Great! Wait, while update downloading...\n";
      cout << "#...";
      cout << "............50%";
      cout << "....................86%";
      cout << "........................100%\n";
      cout << "#Update download! You want to install it?\n";
      cout << "#Y or N\n";
      cout << "#";
      cin >> otv2;
      if((otv2="Y") || (otv2="y"))
      {
        ifansy2();
      }
      if((otv2="N") || (otv2="n"))
      {
        ifansn2();
      }
    
    
    }
    
    int main()
    {
      bool prov;
      char* otv;
      cout << "#Welcome to updater of DoubleOS\n";
      cout << "#If you want update OS to version 5.1.5\n";
      cout << "#Press Y, then press Enter\n";
     tochka: cout << "#If you don't want install update, press N, then Enter\n";
      cout << "#";
      cin >> otv;
      if((otv="Y") ||(otv="y"))
      {
        prov=true;
      }
      else if((otv="N") ||(otv="n"))
      {
        prov=false;
      }
      if(prov=true)
      {
        ifansy();
      }
      else if(prov=false)
      {
        ifansn();
      }
      else
      {
        cout << "I don't know this command!";
        goto tochka;
      }
       return 0;
    }
    
    Про goto можете не говорить :)
     
    #4787 Double2, 19 Feb 2010
    Last edited: 19 Feb 2010
  8. rankor777

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

    Joined:
    11 Jan 2008
    Messages:
    15
    Likes Received:
    23
    Reputations:
    0
    На govnokod.ru тянет ;)
     
  9. Double2

    Double2 Banned

    Joined:
    9 Jan 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    И все же, почему не робит?) Что не так?
     
  10. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    if((otv2="Y") || (otv2="y"))
    ты не сравниваешь, а присваиваешь. Дальше не смотрел. Какой-то бред вообще
     
  11. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Code:
    char* otv;
    ...
    cin >> otv;
    это не так
     
  12. Double2

    Double2 Banned

    Joined:
    9 Jan 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Почему? Разве оператор || это не ИЛИ?
     
  13. Double2

    Double2 Banned

    Joined:
    9 Jan 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    А как надо?
     
  14. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    перепиши свой код так.

    Code:
    if(("Y" = otv2) || ("y" = otv2))
    и скомпиль.
     
  15. Double2

    Double2 Banned

    Joined:
    9 Jan 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Выдает "untitled2.cpp": E2277 Lvalue required in function main() at line 60
     
  16. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    ты язык знаешь или просто копипастишь? = это присвоить, == это сравнение. массив чар создавай char array[31337]
     
  17. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    та не сравнивают строки простым оператором ==. я просто показал его косяк - он не сравнивает вообще, а приравнивает указатель на строку.

    Double2
    уже который раз я это пишу в этом топике - читай книги или не трогай c++. зря время потратишь.
     
  18. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    if (char a='a' == 'a') cout << "tadam!!!";
    я думал там как-то так сравнивается, я просто весь сурс не читал, первое что в глаза бросилось.
     
  19. raven314

    raven314 New Member

    Joined:
    30 Jan 2009
    Messages:
    44
    Likes Received:
    2
    Reputations:
    0
    на языке С++ можно писать программы для процессоры AVR и прошивать их в дальнейшем ?
    или я чтото неправильно понял, разбирая работы процессоров\программаторов\языков?
     
  20. rankor777

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

    Joined:
    11 Jan 2008
    Messages:
    15
    Likes Received:
    23
    Reputations:
    0
Thread Status:
Not open for further replies.