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

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

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    izlesa, мне программный способ нужен :)))
     
  2. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297

    используй функции из version.dll GetFileVersionInfoSize+GetFileVersionInfo+VerQueryValue

    http://msdn.microsoft.com/en-us/library/ms647003.aspx

    там и пример есть
     
    #2002 0x0c0de, 11 Dec 2008
    Last edited: 11 Dec 2008
    1 person likes this.
  3. izlesa

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

    Joined:
    3 Jan 2008
    Messages:
    112
    Likes Received:
    32
    Reputations:
    5
    2criz
    так уточняй )))
     
  4. _nic

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

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Допустим есть переменная типа AnsiString,содержащяя массив символов.Как на С++(не на С!) подменить в этом массиве символы a на символы f ?
     
  5. sungirl

    sungirl New Member

    Joined:
    10 Dec 2008
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Есть проэкт в Visual Studia 6. Программа создаёт dll файл, при помощи которого в MATLAB передаются данные с С++. Проблема в том,что по здравому смыслу у меня величины x и m должны быть одинаковые. А программа выдаёт совершенно немыслимые числа для m. Помогите разобраться,пожалуйста.
    #include <mex.h>
    #include <math.h>
    #include <stdio.h>
    #include <string.h>
    #define raz 20

    //Prototype:
    void MyEmptyMexFunction(int,int, double*, double*);
    //--------------------------------------
    void mexFunction(int nOut,
    mxArray* pOut[] )
    {
    int mm=20,nn=1; double *pO; double *pO1;
    if (nOut > 0)
    {

    pOut[0] = mxCreateDoubleMatrix(mm,nn,mxREAL);
    pOut[1] = mxCreateDoubleMatrix(mm,nn,mxREAL);

    pO = mxGetPr(pOut[0]);
    pO1 = mxGetPr(pOut[1]);

    MyEmptyMexFunction(mm,nn,pO,pO1);

    }

    }

    //------------Our own auxilary function----------------

    void H(double* x, double* aq)
    {
    int i;
    for (i=0;i<raz;i++) aq=x;
    }


    void MyEmptyMexFunction(int mm, int nn, double* pO, double* pO1)
    {

    double x1[raz];

    int n;
    int i;

    double m[raz];
    double x[raz];

    x[0]=-10;
    n=0;

    H(x,x1);
    do
    {

    x[n+1]=n;
    m[n]=x1[n];

    n++;

    }
    while(n<raz-1);
    for (i=n;i<raz;i++)
    {
    m=333;
    x=333;
    }

    memcpy(pO, m, i*sizeof(double));
    memcpy(pO1, x, i*sizeof(double));
    }
     
  6. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    если массив символов, то тупо чекай каждые елемент массива. если равно 'a' меняй на 'f'.
     
    2 people like this.
  7. _nic

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

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    А как побайтно перебрать AnsiString ?
     
  8. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    http://www.duke.edu/web/isis/gessler/borland/strings.htm
     
  9. ToniKapuchon

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

    Joined:
    26 Feb 2006
    Messages:
    153
    Likes Received:
    45
    Reputations:
    -1
    char massiv[]={'a','a','a','a'};

    for(int i=0;i<sizeof(massiv);i++)
    {
    massiv='f';
    cout<<massiv<<endl;
    }
     
    2 people like this.
  10. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    что не верно в моём свитче?

    Code:
    	switch(hod)
    	{
    		case "1x1": fields[0] = gamer1; break;
    		case "1x2": fields[1] = gamer1; break;
    		case "1x3": fields[2] = gamer1; break;
    		case "2x1": fields[3] = gamer1; break;
    		case "2x2": fields[4] = gamer1; break;
    		case "2x3": fields[5] = gamer1; break;
    		case "3x1": fields[6] = gamer1; break;
    		case "3x2": fields[7] = gamer1; break;
    		case "3x3": fields[8] = gamer1; break;
    	}
    
    компилятор ругается

    Code:
    error C2051: case expression not constant
     
  11. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    switch не поддерживает строки
     
    1 person likes this.
  12. Manoff

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

    Joined:
    15 Dec 2007
    Messages:
    38
    Likes Received:
    4
    Reputations:
    0
    Народ , не подскажете , есть у кого справочник по функциям С++ или VC++ ???
     
  13. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    У меня чисто математический вопрос. Надо нарисовать круговую диаграмму (по типу экселя), скажем картошки продано 70%, а морковки 30%, рисую круг с этим проблем нет, надо нарисовать угол из центра окружности и до ее границы. Рисовать я так понял надо двумя прямыми. А формулу не помню. Буду благодарен если кто то подскажет. Компилятор TurboC или Borland C++
    P.S. Manoff смотри msdn, on-line версия но я предпочитаю поиск из VS
     
  14. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Code:
    	char gamer1;
    	cin >> gamer1;
    	char *fields[9] = {" "," "," "," "," "," "," "," "," "};
    	char hod;
    	cin >> hod;
    
    	if(hod == "1x1") fields[0] = gamer1;
    	else if(hod == "1x2") fields[1] = gamer1;
    	else if(hod == "1x3") fields[2] = gamer1;
    	else if(hod == "2x1") fields[3] = gamer1;
    	else if(hod == "2x2") fields[4] = gamer1;
    	else if(hod == "2x3") fields[5] = gamer1;
    	else if(hod == "3x1") fields[6] = gamer1;
    	else if(hod == "3x2") fields[7] = gamer1;
    	else if(hod == "3x3") fields[8] = gamer1;
    
    Code:
    error C2446: '==' : no conversion from 'const char *' to 'int'
    error C2040: '==' : 'int' differs in levels of indirection from 'const char [4]'
    error C2440: '=' : cannot convert from 'char' to 'char *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
    
    :'( ????
     
    #2014 Doom123, 12 Dec 2008
    Last edited: 12 Dec 2008
    1 person likes this.
  15. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    Наверное как то так надо
    Code:
    if(hod == '1x1') *fields[0] = gamer1;
     
  16. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    n4e/\@ нет ...
     
  17. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    Что прога должна делать? Я не очень понимаю.
    У тебя первые две ошибки связаны с кавычками.
     
  18. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    n4e/\@ это часть проги ... но впринципе здесь человек вводит свою метку ... и свой ход так сказать... потом сравниваем введёный ход и присваеваем элементу массива метку игрока =) .... в чём же ошибка с ковычками?

    то что ты показал '1x1' ... на скоко я знаю между ' ' вводится один символ ... и если вот так ввести в программе то это превратится в какуета херь =\\

    п.с насчёт .. *fields[0] это было верно я просто не заметил =)
     
    #2018 Doom123, 12 Dec 2008
    Last edited: 12 Dec 2008
  19. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    если строки типа char* то их обычно сравнивают strcmp

    if(!strcmp("1x1",hod))
    {
    ...
    }
     
  20. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    Вот так все работает.
    Code:
    char gamer1;
    	cin >> gamer1;
    	char *fields[9];
    	for (int i = 0; i <=8; i++)
    		fields[i] = new char;
    	char *hod;
    	hod = new char;
    	cin >> hod;
    
    	if(0 == strcmp(hod, "1x1")) *fields[0] = gamer1;
    	else if(0 == strcmp(hod,"1x2")) *fields[1] = gamer1;
    	else if(0 == strcmp(hod,"1x3")) *fields[2] = gamer1;
    	else if(0 == strcmp(hod,"2x1")) *fields[3] = gamer1;
    	else if(0 == strcmp(hod,"2x2")) *fields[4] = gamer1;
    	else if(0 == strcmp(hod,"2x3")) *fields[5] = gamer1;
    	else if(0 == strcmp(hod,"3x1")) *fields[6] = gamer1;
    	else if(0 == strcmp(hod,"3x2")) *fields[7] = gamer1;
    	else if(0 == strcmp(hod,"3x3")) *fields[8] = gamer1;
    
     
Thread Status:
Not open for further replies.