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

Ошибка времени выполнения Не могу понять как победить - C++

Восстановить пароль Регистрация
 
Prokhoroff
 Аватар для Prokhoroff
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 11
26.09.2013, 20:27     Ошибка времени выполнения Не могу понять как победить #1
Привет всем. Вот написал тут нехитрый код для считывания и записи файлов. При компиляции ошибок нет и предупреждений нет. А вот как запустиш на выполнение так глаз начинает радовать вот такая картина.
Ошибка времени выполнения Не могу понять как победить

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <iostream.h>
#include <string.h>
 
void errorfile();
void parsing_file_1();
void parsing_file_2();
 
FILE *fout, *finp;
 
int main()
{
    errorfile();
    parsing_file_1();
 
    return 0;
}
 
void errorfile()
{
    fout = fopen("fileout.txt","r");
 
    if(fout == NULL)
    {
        printf("Error open file fileout.txt\n");
        exit(0);
    }
 
    finp = fopen("fileinp.txt","a+");
 
    if(finp == NULL)
    {
        printf("Error open file fileinp.txt\n");
        exit(0);
    }
}
 
void parsing_file_1()
{
    char * alf_buf = "";
    int detect_alf = 0, len = 0;
    char * super ="";
 
    while(!feof(fout))
    {
        *alf_buf = fgetc(fout);
 
        detect_alf = isalpha(*alf_buf);
 
        if(detect_alf != 0)
        {
            strcat(super,alf_buf);
            
            len = strlen(super);
 
            if(len >= 2)
            { 
                  if(detect_alf == 0)
                  {
                      fputs(super,finp);
                      fputc('\n',finp);
                      super = "";
                  }
            }
        }
    }
 
    fclose(fout);
    fclose(finp);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 20:27     Ошибка времени выполнения Не могу понять как победить
Посмотрите здесь:

Ошибка времени выполнения C++
не могу понять в чем ошибка. C++
ошибка не могу понять почему ! C++
C++ Ошибка времени выполнения.
C++ Не могу понять в чём ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
26.09.2013, 20:35     Ошибка времени выполнения Не могу понять как победить #2
Цитата Сообщение от Prokhoroff Посмотреть сообщение
C++
1
2
3
char * alf_buf = "";
* * int detect_alf = 0, len = 0;
* * char * super ="";
Не выделили память под *char, а уже используете? Не надо так..

Не по теме:

А вообще, почему у вас finp используется для вывода, а fout для ввода? О_о (по названием же наоборот должно быть)

Prokhoroff
 Аватар для Prokhoroff
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 11
26.09.2013, 21:03  [ТС]     Ошибка времени выполнения Не могу понять как победить #3
Простите а как её выделить? Приведите пример в коде если не трудно.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
26.09.2013, 21:15     Ошибка времени выполнения Не могу понять как победить #4
Prokhoroff, со строками.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <iostream.h>
#include <string.h>
 
void errorfile();
void parsing_file_1();
void parsing_file_2();
 
FILE *fout, *finp;
 
int main()
{
    errorfile();
    parsing_file_1();
 
    return 0;
}
 
void errorfile()
{
    fout = fopen("fileout.txt","r");
 
    if(fout == NULL)
    {
        printf("Error open file fileout.txt\n");
        exit(0);
    }
 
    finp = fopen("fileinp.txt","a+");
 
    if(finp == NULL)
    {
        printf("Error open file fileinp.txt\n");
        exit(0);
    }
}
 
void parsing_file_1()
{
    char *alf_buf = new char[2]; alf_buf[1] = '\0';
    int detect_alf = 0, len = 0;
    char * super = new char[512]; super[0] = '\0';
 
    while(!feof(fout))
    {
        *alf_buf = fgetc(out);
 
        detect_alf = isalpha(*alf_buf);
 
        if(detect_alf != 0)
        {
            strcat(super,alf_buf);
            
            len = strlen(super);
 
            if(len >= 2)
            { 
                  if(detect_alf == 0)
                  {
                      fputs(super,finp);
                      fputc('\n',finp);
                      super = "";
                  }
            }
        }
    }
 
    fclose(fout);
    fclose(finp);
}
Вроде бы вот так должно быть (не проверял, не компилировал, не знаю, что оно должно делать)
Yandex
Объявления
26.09.2013, 21:15     Ошибка времени выполнения Не могу понять как победить
Ответ Создать тему
Опции темы

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