[ 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. GRRRL Power

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

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    WinAPI это не библиотека, а набор функций, экспортируемых DLL'ками винды.

    Это не уменьшит размер. Компиляторы в программу скомпилированную прототипы функций никак не включают, включаются только те в секцию импортов, которые непосредственно были использованы в программе.
     
  2. pycmep

    pycmep New Member

    Joined:
    17 Aug 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Как можно получить рандомную букву\текст? Есть ли готовые функции\реализации?
     
  3. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    pycmep,
    Code:
    int get_rand_char()
    {
    	char chrs[] = "1234567890";
    
    	return chrs[rand() % strlen(chrs)];//rand(): функция генерирования рандомнога числа
    //strlen(chrs): макс. число которое может быть после генерирования
    }
    Code:
    	const int len_gen = 8;//Сколько генерируем символов
    	char rnd_pass[len_gen + 1];//len_gen + 1: количество символов + null byte
    
    	srand(GetTickCount());//Для функции rand()
    	for (int i = 0; i < len_gen; i++)
    	{
    		rnd_pass[i] = get_rand_char();
    	}
    	rnd_pass[len_gen] = '\0';
    
    	return 0;
     
    1 person likes this.
  4. Shaba777

    Shaba777 New Member

    Joined:
    8 Sep 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    первый день в c++.среда разработки - visual c++ 2010.что нужно сделать, когда вот такая ошибка?

    error C2065: cout: необъявленный идентификатор

    весь код:

    Code:
    #include "StdAfx.h"
    
    int main()
    {
    	cout << " Hello, World!\n";
    	return 0;
    }
    
    
    подключая iostream.h выдает ошибку:

    Не удается открыть файл включение: iostream.h: No such file or directory
     
  5. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    492
    Likes Received:
    186
    Reputations:
    5
    после #include "StdAfx.h"
    напиши
    use namespace std;

    _________
    iostream
    так подключай
    #include <iostream>
     
  6. Shaba777

    Shaba777 New Member

    Joined:
    8 Sep 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    вот чего навыдавало:
    hello.cpp(2): error C2143: синтаксическая ошибка: отсутствие ";" перед "namespace"
    hello.cpp(2): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
    hello.cpp(2): error C2059: синтаксическая ошибка: ;
    hello.cpp(6): error C2065: cout: необъявленный идентификатор
     
  7. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    492
    Likes Received:
    186
    Reputations:
    5
    я немного ошибся
    PHP:
    #include "stdafx.h"
    #include <iostream>
    using namespace std;

    int main(int argccharargv[])
    {

        
    cout << " Hello, World!\n";
        return 
    0;
    }
     
  8. pycmep

    pycmep New Member

    Joined:
    17 Aug 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    wolmer

    Ты мне скинул функцию как цифры генерировать, а я хотел буквы.

    Думаю надо массив из букв, и так рандом как-нибудь из массива.
     
  9. KI11obyte

    KI11obyte New Member

    Joined:
    8 Nov 2005
    Messages:
    29
    Likes Received:
    2
    Reputations:
    0
    чем буква отличается как цифры? выводи просто не как %d а как %c. если принципиален диапазон английский букв - правь рандом
     
  10. Leyjin25

    Leyjin25 New Member

    Joined:
    10 Nov 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    подскажите как в С++ в консольном приложении были ключи? К примеру : myprog.exe -b -k -c etc или скажите в каком направлении копать ?
     
  11. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Code:
    #include <iostream>
    
    int main( int argc, char *argv[] ) {
    	for( int i = 1; i < argc; i++ )
    		std::cout << "arg#" << i << ": " << argv[ i ] << std::endl;
    
    	return 0;
    }
    
    Для маин определено два встроенных, но не обязательных параметра. argc(содержащий количество аргументов) и argv(содержащий сами аргументы).
     
  12. Leyjin25

    Leyjin25 New Member

    Joined:
    10 Nov 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Если честно не совсем понял ( Я хочу чтобы прописал один ключ вызывалась первая функция , прописав другой ключ в коммандной строке вызывалась вторая функция итд...
    Кстати приведенный выше код не выводит ничего...
     
    #6012 Leyjin25, 6 Jan 2011
    Last edited: 6 Jan 2011
  13. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    С++ похоже не для меня :(
    сделал класс
    class Theme
    {
    private:
    LRESULT CALLBACK BorderProc(HWND hWnd,UINT Message, UINT wParam, LONG lParam);
    }

    Theme::Theme()
    {
    WNDCLASS WndClass;
    WndClass.lpfnWndProc=BorderProc; // здец!!!!!
    RegisterClass(&WndClass);
    }

    ошибка не могу преобразовать LRESULT (__stdcall Theme::*)(HWND hWnd,UINT Message, UINT wParam, LONG lParam) в LRESULT (__stdcall WNDPROC*)(HWND hWnd,UINT Message, UINT wParam, LONG lParam)

    И как указать прямой адрес функции? Делать функцию глобально тупа так как я хотел в класс засунуть все параметры.

    Если кому интересно вот тут описано решение этой проблемы
    http://forum.sources.ru/index.php?showtopic=111489
     
    _________________________
    #6013 Gar|k, 6 Jan 2011
    Last edited: 7 Jan 2011
  14. Leyjin25

    Leyjin25 New Member

    Joined:
    10 Nov 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Еще вопрос , я создаю указатель типа чар в майне, далее пытаюсь ему присвоить значение первого параметра *argv[] и вылетает ошибка
    [BCC32 Error] File1.cpp(22): E2034 Cannot convert 'char * *' to 'char *'
    Full parser context
    File1.cpp(16): parsing: int main(int,char * *)
    разве это запрещено ?
    Делаю это для того чтобы потом сравнить с какойнибудь буквой(ключем) и уже выводить функции итд
     
    #6014 Leyjin25, 6 Jan 2011
    Last edited: 6 Jan 2011
  15. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    просто argv - это массив указателей(указатель на указатель), нам нужно не *argv[1] а просто argv[1]:
    Code:
    #include <iostream>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
    	char* message = argv[1];
    	cout << message;
    	return 0;
    }
    
     
  16. Shaba777

    Shaba777 New Member

    Joined:
    8 Sep 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    rudi, спасибо.возникла новая проблема при компиляция опять же простенького кода:
    Code:
    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    
    int main()
    {
    int x = 5;
    int y = 7;
    cout << "\n";
    cout << x + y << "  " << x *y;
    cout <<"\n";
    return 0;
    }
    
    стандартный компилятор мелкософта говорит, что "не удается открыть файл включение stdafx.h, no such file or directory"
    в чем проблема?
     
  17. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Создавайте пустой проект(уже создали?) и не нужен вам никакой stdafx.h
     
  18. Shaba777

    Shaba777 New Member

    Joined:
    8 Sep 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    если без stdafx.h, то в компиляторе выдает кучу ошибок идентификаторов.и в проекте пишет, что нужно добавить stdafx.h
     
  19. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Я же русским языком сказал:

    .

    [​IMG]
     
  20. Shaba777

    Shaba777 New Member

    Joined:
    8 Sep 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    спасибо, конечно, но как быть с компилятором?
     
Thread Status:
Not open for further replies.