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

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    VS 2008, все компилится на ура.
     
  2. POS_troi

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

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Вы не забывайте указывать - какая среда и какой проэкт (Consol/Windows Form)
     
    #4382 POS_troi, 7 Dec 2009
    Last edited: 7 Dec 2009
  3. rudvil

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Empty Project, т.е. консоль.
     
  4. St0nX

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

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Qt 4.5.2
    Ubuntu 9.10
    PHP:
    #ifndef XO_II_H
    #define XO_II_H

    struct crd
    {
    int x;
    int y;
    };

    class 
    xo_ii
    {
    public:
        
    xo_ii();
        
    crd CrdOpr(int masint poss);
    private:
        
    int SummStr(int mas,int nStr);
        
    int SummDl1(int mas);
        
    int SummDl2(int mas);
        
    crd OprNullStr(int mas,int nStr);
        
    crd OprNullDl1(int mas);
        
    crd OprNullDl2(int mas);
    };

    #endif // XO_II_H
    может тут че не так сделал...
     
    #4384 St0nX, 7 Dec 2009
    Last edited: 7 Dec 2009
    1 person likes this.
  5. POS_troi

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

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Ну вот. а у MFC допустим свои заморочки (покрайне мере я вечно нарываюсь). да и компилитцо то оно компилитцо а ты вызови данную функцию и получиш подзатыльник от компилятора ;)
     
    1 person likes this.
  6. rudvil

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    тут тоже нужно поменять
    заменить
    Code:
    int SummStr(int * mas,int nStr);
    на
    Code:
    int SummStr (int* mas[], int nStr);
     
    1 person likes this.
  7. InFlame

    InFlame Banned

    Joined:
    27 Oct 2008
    Messages:
    207
    Likes Received:
    32
    Reputations:
    0
    Code:
    	FILE *fp;
    	char *files[] = {file1, file2, file3};
    	i=0;
    	while(i<3) {
    		printf("Обработка файла %s\n\t",files[i]);
    		if((fp=fopen(files[i],"r+"))==NULL) { //если файл невозможно открыть, то выкидывается ошибка и переходим к следующему файлу в массиве
    		perror("fopen");
    		fclose(fp);
    		i++;
    	}
    	//тут идёт обработка файла
    	i++;
    
    Есть массив файлов, программа обрабатывает этот массив, но если файл невозможно открыть, то программа завершает свою работу. Вопрос: как сделать так, чтобы программа продолжала свою работу, если файл невозможно открыть?
    ЗЫ: Прога вылетает с ошибкой Segmentation fault (Ошибка сегментации).
     
    #4387 InFlame, 8 Dec 2009
    Last edited: 8 Dec 2009
  8. St0nX

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

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Прога завершается? или же всетаки с ошибкой вылетает? Если завершается нормально то гоняй в цикле пока массив с файлами не кончится.
     
  9. InFlame

    InFlame Banned

    Joined:
    27 Oct 2008
    Messages:
    207
    Likes Received:
    32
    Reputations:
    0
    Прога вылетает с ошибкой (Ошибка сегментации).
     
  10. POS_troi

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

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108


    вся проблема тут, ибо по условию "i<3" ты в результате получаеш 4!!! (0,1,2,3) а четвертую ячейку массива она не может высосать из воздуха, сделай условие "i<2".

    Компилил в мозгах, могу ошибаться но врятли.
     
  11. St0nX

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

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Неа будет 0 1 2 когда i = 3 оно уже не прокатит по условию
     
  12. InFlame

    InFlame Banned

    Joined:
    27 Oct 2008
    Messages:
    207
    Likes Received:
    32
    Reputations:
    0
    Всё там правильно, потому что в цикле стоит условие "меньше", а не "меньше-равно." Да и суть не в этом. Я искусственно удаляю второй файл и на нём программа вылетает, а надо чтобы продолжала работу.
     
    #4392 InFlame, 8 Dec 2009
    Last edited: 8 Dec 2009
  13. St0nX

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

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Выложи весь код работы с файлами так ниче не понятно чё ты там делаеш, как удаляеш. В отладчике смотрел?
     
  14. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Емае, ну для кого отладчик придумали то? посмотри там на какой ф-ции вылетает и с какими параметрами.
     
  15. POS_troi

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

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Используя массив в определении fopen ты делаеш себе грабли (это не глюк - это фишка и доволи подробно опианная в WWW).

    Проверяй наличие файлов перед циклом, твоя ошибка не так в коде как в реализации идееи - не стой стороны зашел.

    i<3 - протупил, не о том думал =/
     
    #4395 POS_troi, 8 Dec 2009
    Last edited: 8 Dec 2009
  16. winterfrost

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

    Joined:
    18 Aug 2008
    Messages:
    42
    Likes Received:
    18
    Reputations:
    15
    fclose(fp);
    - если файл не открылся, мб и не надо его закрывать? =)

    п.с. фигурной скобки закрывающей не хватает одной, надеюсь она там дальше у тебя есть, и отступ после иф не соблюдён почему-то
     
    #4396 winterfrost, 9 Dec 2009
    Last edited: 9 Dec 2009
  17. St0nX

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

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    В этом ты прав)

    Если файл не открыт то он пытается закрыть указатель на адрес файла который равен 0 поэтому и получает ошибку сегментации ;)
     
  18. winterfrost

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

    Joined:
    18 Aug 2008
    Messages:
    42
    Likes Received:
    18
    Reputations:
    15
    Code:
    [FONT=Fixedsys]if ((fp=fopen(files[i],"r+"))==NULL) {
        perror("fopen");
        i++;
        continue; // <--
    }[/FONT]
    попробуй добавить continue, что-бы перейти к следующей интерации цикла
     
    1 person likes this.
  19. InFlame

    InFlame Banned

    Joined:
    27 Oct 2008
    Messages:
    207
    Likes Received:
    32
    Reputations:
    0
    Всем спасибо, исправил.
     
  20. PandoraBox

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

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    кто в курсе как проактивно защитить файл от удаления в системе windows ?

    типа LockFileEx, ZwLockFileEx, NtLockFileEx
     
Thread Status:
Not open for further replies.