Форум программистов, компьютерный форум CyberForum.ru

Debug errors - C++

Восстановить пароль Регистрация
 
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
24.12.2009, 20:14     Debug errors #1
В чем причина exceptionoв?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
int count=0;
int mass[10];
char str[10];
FILE *f1,*f2;
int i;
int t;
    if(!(f1=fopen("C:\\j\\input.txt","r+")))// поставте здесь адрес какой вам нужно
    {
        puts("File error");
    }
    else
    {
        for(i=0;i<10;i++)
        {
        fgets(str,100,f1);
        mass[i]=atoi(str);
        if(mass[i]>0)
            count++;
        }
        printf("%d",count);
    fclose(f1);
    }
 
    f2=fopen("C:\\j\\output.txt","w");
    fprintf(f2,"%d",count);
    fclose(f2);
    _getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2009, 20:14     Debug errors
Посмотрите здесь:

C++ Debug Dev C++
C++ Debug error
C++ fatal errors
debug error C++
C++ NDEBUG и DEBUG
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
24.12.2009, 20:20     Debug errors #2
Цитата Сообщение от Sekt Посмотреть сообщение
В чем причина exceptionoв?
Мм, да несколько:
- f1 не открылся, но его все равно пытаются закрыть
- нет проверки открылся ли f2, но в него что-то записывают и закрывают
- str размером 10, но в нее можно записать 100 байт
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
24.12.2009, 20:31  [ТС]     Debug errors #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Console.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    int count=0;
    int mass[10];
    char str[10]={"go"};
    FILE *f1,*f2;
    int i;
    int t;
    if(!(f1=fopen("C:\\j\\input.txt","r+")))// поставте здесь адрес какой вам нужно
    {
        puts("File error");
    }
    else
    {
        for(i=0;i<10;i++)
        {
            fgets(str,100,f1);
            mass[i]=atoi(str);
            if(mass[i]>0)
                count++;
        }
        printf("%d",count);
        fclose(f1);
    }
    if(!(f2=fopen("C:\\j\\output.txt","w")))
    {
        puts("File error");
    }
    else
    {
        fprintf(f2,"%d",count);
        fclose(f2);
    }
    _getch();
    return 0;
}
Все я понял.
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
24.12.2009, 20:34     Debug errors #4
fgets принимает вторым параметром количество байт, которые можно ввести в str. Поэтому записать лучше так:
C
1
fgets(str, sizeof(str), f1);
Yandex
Объявления
24.12.2009, 20:34     Debug errors
Ответ Создать тему
Опции темы

Текущее время: 20:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru