[ 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. Diablo@Dragon

    Diablo@Dragon Elder - Старейшина

    Joined:
    14 Nov 2007
    Messages:
    69
    Likes Received:
    2
    Reputations:
    -7
    Сейчас проверим
     
  2. 12usver12

    12usver12 Elder - Старейшина

    Joined:
    12 Dec 2007
    Messages:
    50
    Likes Received:
    9
    Reputations:
    0
    Svarog попробуй вместо &type влепить 0 , у меня работало так
     
  3. Diablo@Dragon

    Diablo@Dragon Elder - Старейшина

    Joined:
    14 Nov 2007
    Messages:
    69
    Likes Received:
    2
    Reputations:
    -7
    Сообщение от ToniKapuchon
    void func(int p=1;int p1=2)
    {
    }

    в компосере непашет такого вида конструкция нехочет компилить
     
  4. xismyname

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

    Joined:
    7 Sep 2008
    Messages:
    77
    Likes Received:
    7
    Reputations:
    -5
    Code:
    int main(void)
    {
         func(NULL);
    
         return 0;
    }
    
    void func(int *n)
    {
         if(n == NULL)
         {
              puts("аргумент не задан !");
         }
         else
         {
              printf("аргумент = %d\n",*n);
         }
    }
       
     
    #1884 xismyname, 21 Nov 2008
    Last edited: 21 Nov 2008
  5. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    Для того чтобы включить выравнивание по границе байта нужно сделать

    #pragma pack(push, 1)

    тут структура

    #pragma pack(pop)
     
  6. Diablo@Dragon

    Diablo@Dragon Elder - Старейшина

    Joined:
    14 Nov 2007
    Messages:
    69
    Likes Received:
    2
    Reputations:
    -7
    ну всёбы хорошо только вот это под микроконтроллер нада и нужно чтобы работало таким образом

    Параметры по Умолчанию

    Часто в самом общем случае функции требуется больше параметров, чем в самом простом и более употребительном случае. Например, в библиотеке потоков есть функция hex(), порождающая строку с шестнадцатиричным представлением целого. Второй параметр используется для задания числа символов для представления первого параметра. Если число символов слишком мало для представления целого, происходит усечение, если оно слишком велико, то строка дополняется пробелами. Часто программист не заботится о числе символов, необходимых для представления целого, поскольку символов достаточно. Поэтому для нуля в качестве второго параметра определено значение "использовать столько символов, сколько нужно". Чтобы избежать засорения программы вызовами вроде hex(i,0), функция описывается так:

    extern char* hex(long, int =0);

    Инициализатор второго параметра является параметром по умолчанию. То есть, если в вызове дан только один параметр, в качестве второго используется параметр по умолчанию.

    Например:

    cout << "**" << hex(31) << hex(32,3) << "**";

    интерпретируется как

    cout << "**" << hex(31,0) << hex(32,3) << "**";

    и напечатает:

    ** 1f 20**

    Параметр по умолчанию проходит проверку типа во время описания функции и вычисляется во время ее вызова. Задавать параметр по умолчанию возможно только для последних параметров, поэтому




    int f(int, int =0, char* =0); // ok
    int g(int =0, int =0, char*); // ошибка
    int f(int =0, int, char* =0); // ошибка




    Заметьте, что в этом контексте пробел между * и = является существенным (*= является операцией присваивания):




    int nasty(char*=0); // синтаксическая ошибка
     
  7. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    Можно ли играть одновременно 2 разные частоты через пс спикер? типа "полифония". Kernel32 - Beep()
     
  8. demo_version

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

    Joined:
    31 Aug 2006
    Messages:
    63
    Likes Received:
    11
    Reputations:
    0
    Хочу задать несколько вопросов:)
    В чем я буду писать на си ? В каком-то специальном редакторе или можно в блокноте как html ? И нужна ли какая-то поддерживающая программа ?

    И еще, си и си++ это одно и то же ? Мне просто говорили что си такого нет, есть си++

    Заранее спасибо за разъяснение сих вопросов))))
     
  9. jawbreaker

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

    Joined:
    7 Jul 2008
    Messages:
    156
    Likes Received:
    76
    Reputations:
    3
    Писать можно в чём угодно, хоть в блокноте, но в какой-нибудь IDE это делать будет в сто раз удобно. Там и компилятор есть, и отладчик, и ещё куча всякой нужной фигни. Например, Visual Studio.
    С это старый процедурный язык, С++ "новый" объектно-ориентированный который по большей части совместим с С.
     
  10. demo_version

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

    Joined:
    31 Aug 2006
    Messages:
    63
    Likes Received:
    11
    Reputations:
    0
    jawbreaker
    Благодарю)))

    Еще вопрос: а вот если я буду в блокноте что-то писать, то каким должно быть расширение ?
     
    #1890 demo_version, 21 Nov 2008
    Last edited: 21 Nov 2008
  11. jawbreaker

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

    Joined:
    7 Jul 2008
    Messages:
    156
    Likes Received:
    76
    Reputations:
    3
    cpp, cxx, какое компилятор понимает в-общем. Купи себе книжку С++ для чайников, чтобы начать в самый раз =)
     
  12. demo_version

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

    Joined:
    31 Aug 2006
    Messages:
    63
    Likes Received:
    11
    Reputations:
    0
    jawbreaker
    Спасибо еще раз!)) Скачала!))) надеюсь разберусь!
     
  13. criz

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

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    При запуске проги в билдере выскакивает:
    CPU
    Подскажите чего оно выскакивает и работать мешает? :)
     
  14. demo_version

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

    Joined:
    31 Aug 2006
    Messages:
    63
    Likes Received:
    11
    Reputations:
    0
    Начала читать C++ для чайников. . . .
    Скачала етот Visual C++ как и советовал автор, ввела туда код, который предложил автор, теперь он пишет скомпилировать, но я не вижу опции Make->Compile, о которых он говорит. . . .

    + я не совсем понимаю етот термин, прочла в википедии! =(

    Т.е у меня щас есть просто код, откуда появится интерфейс ?????
    хелп плиз)))
     
  15. criz

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

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    demo_version
    Интерфейс, наверно, ручками придется создавать :)
     
  16. ZET36

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

    Joined:
    8 Oct 2007
    Messages:
    250
    Likes Received:
    49
    Reputations:
    0
    Есть у когонибуть исходники простенького backdoor'а ?
     
  17. criz

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

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Вот, есть какой-то: http://slil.ru/26356633
    хз откуда скачивал...
     
  18. NetSter

    NetSter Moderator

    Joined:
    30 Jul 2007
    Messages:
    810
    Likes Received:
    414
    Reputations:
    62
    доброго времени суток.
    нужно накодить функцию открытия и просмотра содержимого текстового файла (в отдельном окне.)
    вот что уже накодил:

    класс ОПЕН
    Code:
    class COpenWnd:public CFrameWnd
    {
    public:
    	COpenWnd(CWnd *wnd);
    };
    COpenWnd::COpenWnd(CWnd *wndPerent)
    {
    CRect rectWnd(25,25,700,500);
    Create(NULL, "Opened file", WS_OVERLAPPEDWINDOW, rectWnd, wndPerent, NULL);
    }
    
    и собственно функция ОПЕН

    Code:
    void CMyFrameWin::OnOpen()
      {
    			 
    	  CString m_Text, path;
    	CFileDialog dlgOpen(TRUE, "txt","", 
    	OFN_HIDEREADONLY, "BLOKNOT (*.txt)| *.txt| VISUAL C++ (*.cpp)| *.cpp| ALL Files(*.*)|*.*|", this);
    
    	if(dlgOpen.DoModal()==IDOK)
    	{
    		CStdioFile File(dlgOpen.GetPathName(), CFile::modeRead| CFile::typeBinary);
    		CString & ref=m_Text;
    		path=dlgOpen.GetPathName();
    		COpenWnd *OpenWnd=new COpenWnd(this);
    		OpenWnd -> ShowWindow(SW_SHOWNORMAL);
    		OpenWnd -> UpdateWindow();
    		CClientDC dc(OpenWnd);
    		int y=30;
    CFont l_font; 
    l_font.CreatePointFont(150,"Lucida Console"); 
    CFont* l_old_font = dc.SelectObject(&l_font);
    		dc.TextOut(10,10,path);
    dc.SelectObject(l_old_font);
    
    		while (File.ReadString(ref)!=NULL)
    		{
    CFont l_font; 
    l_font.CreatePointFont(150,"Lucida Console"); 
    CFont* l_old_font = dc.SelectObject(&l_font);
        
    		dc.SetTextColor(RGB(y*10,y+19,y+50));
    		dc.TextOut(30,y,m_Text, strlen(m_Text)-1);
    		y=y+45;
    		dc.SelectObject(l_old_font); 
    		}
    	}
      }
    
    проблемка: при открытии больших файлов большая часть текста не попадает в это окно)))
    помогите привинтить к этому окну полосы прокрутки чтоб весь текст файла можно было просмотреть.
    по ходу чудить нужно в классе ОПЕН но ц мну ниччего не получилось. кто что подскажет?
    Большое спасибо.
     
    _________________________
    1 person likes this.
  19. InfernoNet

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

    Joined:
    7 Nov 2007
    Messages:
    248
    Likes Received:
    228
    Reputations:
    -20
    У препода на доске.
     
  20. JukeBox

    JukeBox New Member

    Joined:
    12 Jun 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Не совсем по С, но все же:
    Есть нарисованный прямоугольник типа TRect(Borland C++) Rect(x1, y1, x2, y2)
    Нужно его поворачивать вокруг заданной точки.
    Неподскажите как это можно "провернуть"?
     
Thread Status:
Not open for further replies.