[ C / C++ ] — начинающим: задаем вопросы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by begin_end, 28 Apr 2015.

  1. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    http://www.cplusplus.com/
     
  2. GRRRL Power

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

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
  3. Archi

    Archi New Member

    Joined:
    14 Jul 2015
    Messages:
    32
    Likes Received:
    1
    Reputations:
    0
    Ребят, такой вопрос, я начал изучать язык C++ но, в учебных материал, тобись стати, книги, и там все говорят, прежде чем изучать язык C++ изучите сначала С. Так как быть продолжать изучать С++ или идти к истокам С?
     
  4. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    Учи с++ дальше, только выбери другое пособие, без таких советов :)
     
    Fanavana likes this.
  5. Peklots

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

    Joined:
    28 Sep 2008
    Messages:
    281
    Likes Received:
    144
    Reputations:
    36
    Вопрос таков, как в консольном приложении на С++ отключить отображение самого консольного окна.
    Есть программа, которая пишет некие данные в файл, дак вот при запуске быстро проскакивает консоль, как бы отключить все это дело?)
     
  6. i~DOS

    i~DOS Member

    Joined:
    26 Mar 2009
    Messages:
    42
    Likes Received:
    40
    Reputations:
    4
    Создать Windows Application без окна, либо такой вот кодес с использованием winapi:
    Code:
    HWND console = GetConsoleWindow();
    if (console)
        ShowWindow(console,SW_HIDE /*SW_SHOW*/);
    
    Если используется qt, то в .pro файл добавить "CONFIG -= console" и пересобрать проект.
     
    Ins3t and Peklots like this.
  7. Diman56

    Diman56 New Member

    Joined:
    12 Oct 2012
    Messages:
    12
    Likes Received:
    4
    Reputations:
    0
    Winapi,winsock хочу разобрать на си. Как сами учились?
     
  8. i~DOS

    i~DOS Member

    Joined:
    26 Mar 2009
    Messages:
    42
    Likes Received:
    40
    Reputations:
    4
  9. todSchmidt1986

    todSchmidt1986 New Member

    Joined:
    4 Sep 2015
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Я написал код калькулятора, скомпилировал его и скомпоновал, а у меня вылетают ошибки.
    Работаю в Визуал Студио 2010 Ультимейт. Подскажите в чем я ошибся!

    #include "stdafx.h"
    #include "iostream"
    #include "map"
    #include "cctype"
    #include "sstream"
    #include "conio.h"
    using namespace std;
    int main()
    {
    int 0;
    map string,double table;

    double number value;
    string string value;
    int no of strings=0;
    cout<<"'+',MINUS='-',MUL='*',DIV='/',";
    cout<<"',',ASSIGN='=',LP='(',RP=')'";
    void;
    double term(bool get);
    double prim(bool get);
    double expr(bool get);
    int error(const string &s);
    void;

    double expr(bool get);
    double left=term(get);
    for(;;)
    switch;
    case "+": left+=term(true)break;
    case "-": left-=term(true)break;
    default: return left;
    double term(bool get);

    double left=prim(get);
    for(;;)
    switch(curr_tok);
    case MUL : left*=prim(true);break;
    case DIV : if(double d=prim(true);
    left/=d;
    break;
    return error("DIVIZION BY ZERO");
    default : return left;
    int main()
    double prim(bool get)
    if(get)get token();
    switch(curr tok);
    case NUMBER:
    double v=number value;
    get token();
    return v;
    case DESK2:
    double&v=table[string value];
    if(get token()==ASSIGN)v=expr(true);
    return v;
    case "-": return -prim(true);
    case LP:
    double e=expr(true);
    if(curr tok!=RP)return error(") EXPECTED");
    get token();
    return e;
    default : return error("PRIMARY EXPRESSION EXPECTED");
    char ch=0;
    do{if(!input->get(ch))return curr tok=END;}
    while(ch!='\n'&&isspace(ch));
    switch(ch);
    case 0 : return curr tok=END;

    case ':': case '*': case '/': case '+':
    case '-': case '(': case ')':
    case '=' :
    return curr tok=Token value(ch);
    case '0': case '1': case '2': case '3':
    case '4': case '5': case '6': case '7':
    case '8': case '9':
    case '.' :
    input->putback(ch);
    *input>>number value;
    return curr tok=NUMBER;
    case ';' :
    case '\n' :
    no of strings++;
    return curr tok=PRINT;

    default :
    if (isalpha(ch));
    string value=ch;
    while(input->get(ch)&&isalpha(ch))
    string value.push back(ch);
    input->putback(ch);
    return curr tok=NAME;
    error("INCORECT WORD");
    return curr tok=PRINT;
    no of errors++;
    cerr<<no of strings<<" :-: ERROR:"<<s<<'\n';
    return 1;
    switch(argc);
    case 1:
    input=&cin;
    break;
    case 2:
    input=new istringstream(argv[1]);
    break;
    default:
    error("To mach parameters!!!");
    return 1;
    table ["pi"]=3.1415926535897932385;
    table["e"] =2.7128272824590452354;

    while(input)

    get token();
    if(curr tok==END)break;
    if(curr tok==PRINT)continue;
    cout<<expr(false)<<'\n';
    if(input!=&cin)delete input;
    system("pause");
    return 0;
    }



    Каждый раз выводит такую ошибку:
    1>------ Построение начато: проект: Calculate1, Конфигурация: Debug Win32 ------
    1>Построение начато 08.09.2015 10:12:28.
    1>ClCompile:
    1> Calculate1.cpp
    1>Calculate1.cpp(1): fatal error C1083: Не удается открыть файл предкомпилированный заголовок: Debug\Calculate1.pch: No such file or directory
    1>
    1>СБОЙ построения.
    1>
    1>Затраченное время: 00:00:03.18
    ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
     
  10. SekirBoshka

    SekirBoshka Member

    Joined:
    25 May 2012
    Messages:
    78
    Likes Received:
    28
    Reputations:
    0
    Тебе программа сама написала ошибку и где её искать.
     
  11. Ins3t

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

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    выпили прекомпайлед хидеры, зачем они тебе вообще
     
  12. Win_Dox

    Win_Dox New Member

    Joined:
    15 Sep 2015
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток! Как можно посчитать площадь круга составленого из квадратов(пиксилей)?
     
  13. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    1 пиксель = 0.2645833333333 миллиметр
    вот и считай количество пикселей внутри круга
     
  14. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Зависит от DPI системы/адаптера/монитора :)
     
    Fanavana likes this.
  15. c1wd

    c1wd New Member

    Joined:
    2 Oct 2015
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    Есть такой код
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <memory.h>
    #include "sizeoffunc.h"
    
    int foo(void) {
        int x = 123;
    //    printf("foo\n");
        return (x);
    }
    int boo(void) { return (10); }
    
    int main (int argc, char *argv[]) {
        char buf[512];
        memcpy(buf, foo, boo - foo);
        int (*f)() = (int (*)())buf;
        (int)(*f)();
        return (0);
    }
    Компилятор gcc. Если раскомментить printf("foo\n"); падает с Segmentation fault
    Не понимаю почему так происходит. объясните кто может заранее благодарен
     
  16. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    Это из за относительной адресации при вызове функции.
    Пиши примерно так (для MSVC):
    //...
    typedef void (*ptrPrintf)(char*, ...);

    int foo(void) {
    volatile ptrPrintf Pf = (ptrPrintf)printf;

    int x = 123;
    Pf("foo\n");
    return (x);
    }
    //...
     
    c1wd likes this.
  17. -=Dem0n=-

    -=Dem0n=- Elder - Старейшина

    Joined:
    15 Mar 2007
    Messages:
    66
    Likes Received:
    5
    Reputations:
    0
    PHP:
    #include <stdio.h>

    void func(int *var){
            *var = *var+
    1;
        }

    int main () {
        
    int sum 0;

        
    func(&sum);
      
        
    printf("sum is: %d\n"sum);
      
    }
    Почему вместо *var = *var+1;
    я не могу написать например *var++;
     
  18. GRRRL Power

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

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    А ты напиши (*var)++. Все дело в приоритете операторов.
     
    binarymaster likes this.
  19. SFake

    SFake Member

    Joined:
    28 Jan 2009
    Messages:
    3
    Likes Received:
    11
    Reputations:
    0
    Ребят, вопрос относительно создания рандомизатора. Задача: нужно сделать рандомизатор событий, которые выпадают случайно, но с условием. Т. е. вероятность выпадения первого события 5%, второго - 30% и т.д. Т. е. данные события выпадют случайно, но с определенной вероятностью выпадения. Спасибо.
     
  20. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    1. Для каждого события создать массив из 100 элементов.
    2. Заполнить массивы событиями- для 5 процентного пять событий, для 30 процентного 30, итд.
    3. event = array[rand % 100];