Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Prokhoroff
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 11
#1

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

26.09.2013, 20:27. Просмотров 309. Ответов 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
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);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 20:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка времени выполнения Не могу понять как победить (C++):

Не могу понять, что за ошибка и как устранить - C++
Создал в CodeGear™ RAD Studio 2009 свою первую прогу на С++, &quot;Hello World!&quot;. #include &quot;std_lib_facilities.h&quot; cout &lt;&lt; &quot;Hello,...

Стек на основе массива структур - эт как понять читаю литературу и не могу понять! - C++
Стек статически (на основе массива структур). Пример структура &quot;Товар&quot; которая включает в себя: № по каталогу(ключ), Название, цена, срок...

Ошибка времени выполнения. - C++
Вот код: void Add_Kod ( _kod*&amp; KodBuf, int a, char* buf, char* buf2) { if(a==1) { KodBuf = new _kod; KodBuf.ch = *(buf);...

Ошибка времени выполнения - C++
Я пишу проэкт в Visual Studia 2008 на C++. У меня есть несколько проблем. Во-первых, когда я собираю финальную версию (release) и...

Ошибка времени выполнения (terminate) - C++
вот этот код // на всякий случай привожу весь код, // т.к. не понимаю что именно вызывает ошибку // verylong.h #ifndef...

Почему происходит ошибка времени выполнения? - C++
прошу помощи в поиске ошибки! уже 2часа пытаюсь найти и никак... Тоже задание по структуре. над ошибкой уже 2 час сижу не могу понять...

3
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 для ввода? О_о (по названием же наоборот должно быть)

0
Prokhoroff
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 11
26.09.2013, 21:03  [ТС] #3
Простите а как её выделить? Приведите пример в коде если не трудно.
0
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);
}
Вроде бы вот так должно быть (не проверял, не компилировал, не знаю, что оно должно делать)
0
26.09.2013, 21:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 21:15
Привет! Вот еще темы с ответами:

Нашел в схожей теме не могу понять в чем ошибка. Кроме того как конкретно сделать что были високосные года? - C++
Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими двумя...

С++ ошибка в проге, но не могу понять какая ошибка( - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;clocale&gt; using namespace std; int main (int args, const char * argv ) { ...

Ошибка времени выполнения при использовании функции scanf_s - C++
Есть код создания библиотеки книг, это его часть. Если потребуется могу скинуть весь код, но он без комментариев void...

не могу понять в чем ошибка. - C++
Здравствуйте. Извините если подобные темы уже есть или это типичный вопрос но я их не нащел в поиске. Я недавно на С++ совсем и хотелось бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru