[ 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. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    У iostream нету объекта end.
    Вероятно, у вас электронная книга в формате djvu и там затерта баква "l".
     
  2. 2L84U

    2L84U New Member

    Joined:
    7 Aug 2010
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Спасибо за ответ, нет, книга бумажная, самая обычная :(
     
  3. Lihosvet

    Lihosvet Member

    Joined:
    3 Dec 2009
    Messages:
    35
    Likes Received:
    5
    Reputations:
    0
    Подскажите пожайлуста как дополнить поле "edit" (а не заменить макросом SetWindowText) :)
     
  4. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ну по логике GetWindowText из него, и прибавить нужные данные к буферу (хотябы через strcat) и потом SetWindowText
    p.s. c чего ты взял что SetWindowText это макрос? это обычная WinApi функция
     
  5. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Есть CGI приложение, вот код:
    Code:
    #include <stdio.h> 
    #include <stdlib.h> 
    #include <memory.h>
    
    int main() 
    { 
        printf("Content-Type: text/html\n\n"); 
        printf( "Your request is: %s<BR><br>\n",getenv("REQUEST_STRING"));
    }
    
    И при обращении к проге cgi.exe?ffv получаю: Your request is: (null)
    Почему прога не видит запроса?
     
  6. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    Вопрос: как с помощью winApi узнать текущую раскладку клавиатуры из активного Консольного окна?
     
  7. Irdis

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

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    Killer-App
    http://msdn.microsoft.com/en-us/library/ms646296(VS.85).aspx
     
  8. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    2Irdis

    Использую вот эти функции:
    HWND hFocus = GetForegroundWindow();
    HKL hklLayout = GetKeyboardLayout(GetWindowThreadProcessId(hFocus,0));
    Дело в том, что раскладку клавиатуры GUI окон определяет нормально, а вот КОНСОЛЬНЫЕ не берет.

    Есть возможность поставить глобальный хук, но этот вариант не подходит.

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

    Что-то я нашел на: http://www.wasm.ru/forum/viewtopic.php?pid=275151, но для меня там слишком сложно написанно, если кто сможет кусок исходника смастерить или объяснить?
     
    #5528 Killer-App, 11 Aug 2010
    Last edited: 11 Aug 2010
  9. 2L84U

    2L84U New Member

    Joined:
    7 Aug 2010
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Очередной вопрос по книге С++ за 21 день.
    Согласно книге
    Вопрос:
    Почему 11111111 11111111 в шестнадцатеричном формате 0xFF? Если переводить, то это по-идее 1111=F 1111=F 1111=F 1111=F и получается FFFF...
    Где в моей логике ошибка или что означает 0xFF? Я не понимаю саму запись 0xFF.
    Согласно вики
    или 0xFF, переводя на вышенаписанное.
    Если так, то по-моему должно быть 0xFFFF. Объясните, кому не лень.
     
  10. fker

    fker Member

    Joined:
    26 Nov 2008
    Messages:
    135
    Likes Received:
    64
    Reputations:
    -1
    2 2L84U
    0x префикс означает что число представлено в шестнацатиричной сс.
    Code:
        int a=2010;  //dec
        int b=03732; //oct
        int c=0x7DA; //hex
    
    все равны 2010 в десятичной.
    Наверно в книге не допечатали, в какой это главе?
     
  11. 2L84U

    2L84U New Member

    Joined:
    7 Aug 2010
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    В 3 главе (Вопросы и ответы стр.75 сверху) 5 издания. То есть я прав относительно 0xFFFF?
     
  12. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    там наверно имелось ввиду что 11111111 = 0xFF
     
  13. 2L84U

    2L84U New Member

    Joined:
    7 Aug 2010
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    А разве 11111111 соответствует числу -1? И как в таком случае записать 11111111 11111111? И если брать в расчет данный ресурс, то косяк в книге... Верно?
     
  14. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    для char -1 == 0xFF = 11111111
    для short -1 = 0xFFFF = 11111111 11111111
    для int -1 = 0xFFFFFFFF = 11111111 11111111 11111111 11111111
     
  15. Самовар

    Joined:
    15 Jun 2009
    Messages:
    219
    Likes Received:
    13
    Reputations:
    0
    2L84U
    в книги много мелких косяков. Я долго бился над элементарными вещами из за какой-нибудь точки.
    Скачай это. Упрощает задачу
    http://archive.williamspublishing.com/archive/5-8459-0056-5/cpp21lst.zip
     
  16. 2L84U

    2L84U New Member

    Joined:
    7 Aug 2010
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Пока писал ответ написал пару програмок и нашел ответы на свои вопросы - да, в книге косяк, причем не один - к 5 главе накопилось 4 штуки :mad: . Один вопрос вдогонку: разве char бывает знаковым?

    2 Самовар - спасибо, пока я писал данное сообщение твоего не видел :)
     
  17. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Бывает. char и unsigned char соответственно.
     
  18. 2L84U

    2L84U New Member

    Joined:
    7 Aug 2010
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Тогда я не понял, как оно проявляется? Ведь, как я понял из книги, этот тип переменной представляет собой 256 значений символов, а не положительное и отрицательное множества цифр... и что как не представляй знаковым множеством или беззнаковым - все равно получим на выходе одно и тоже.. В чем тогда смысл?

    Code:
    #include <iostream>
    
    int main ()
    {
    	char value1;// пусть здесь будет знаковое
    	value1 = 127;
    	std::cout << value1 << std::endl;
    	value1++;
    	std::cout << value1 << std::endl;
    
    	unsigned char value2;//, а тут беззнаковое
    	value2 = 127;
    	std::cout << value2 << std::endl;
    	value2++;
    	std::cout << value2 << std::endl;
    	return 0;
    }
     
    #5538 2L84U, 17 Aug 2010
    Last edited: 17 Aug 2010
  19. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Смысл в том, что число по сути одно и тоже (255 или -1, например), но компилятор его видит по-разному, как знаковое или как беззнаковое, как оно было задано.

    Вот код, который поможет понять:
    Code:
    int main(int argc, char* argv[])
    {
    	char ch = 255; //255, но на самом деле -1
            //char может содержать только от -128 до +127
    	unsigned char u_ch = 255; //255, беззнаковое
            //unsigned char может содержать от 0 до 255
    
    	if(ch == 255) printf("1\r\n");
    	if(u_ch == 255) printf("2\r\n");
    
    	if(ch > 250) printf("3\r\n"); //знаковое сравнение
    	if(u_ch > 250) printf("4\r\n"); //беззнаковое сравнение
    	if((unsigned char)ch > 250) printf("5\r\n"); //принудительно беззнаковое сравнение
    
    
    	return 0;
    }
    
     
  20. Peklots

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

    Joined:
    28 Sep 2008
    Messages:
    281
    Likes Received:
    144
    Reputations:
    36
    Балуюсь я щас с формами.
    Значит есть TForm3, на ней TEdit1 и TButton1, нужно, чтобы при вводе в TEdit1 текста, и нажатии в кнопку TButton1, вылазила TForm4, и на ней отображалось то, что написано в TEdit1, делаю так:
    TForm3:
    Code:
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit3.h"
    #include "Unit4.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm3 *Form3;
    //---------------------------------------------------------------------------
    __fastcall TForm3::TForm3(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm3::Button1Click(TObject *Sender)
    {
    Form4->Show();
    }
    //---------------------------------------------------------------------------
    
    Хотел сделать Form4->Show(Edit1->Text);
    Но Компилятор плюется и ругается...
    TForm4:
    Code:
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit4.h"
    #include "Unit3.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm4 *Form4;
    //---------------------------------------------------------------------------
    __fastcall TForm4::TForm4(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm4::Button1Click(TObject *Sender)
    {
    Form4->Close();
    }
    //---------------------------------------------------------------------------
    Но чую, что надо какойнить TLable на Form4, и в него выводить TEdit1, но ума не приложу как это сделать...
     
Thread Status:
Not open for further replies.