Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
broDiaga_cpp
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
#1

Прога странным образом останавливается на середине

22.05.2010, 01:19. Просмотров 405. Ответов 2
Метки нет (Все метки)

Всем привет. Вот моя прога. Она почему-то останавливается на середине. Первая половина выполняется нормально, а вот перед тем, как открыть второй файл прога останавливает выполнение и всё. Помогите плиз.
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
//Дан файл f, компоненты которого являются целыми числами. 
//Записать в файл g, компоненты файла f, исключив повторные 
//вхождения чисел.
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
 
int main()
{   srand(time(NULL));
    int chs=0,i,j,fl,M[32],k=0,flag=0;
    char ch;
    char a[6];
        FILE *f;
    if ((f = fopen("test.txt","r"))== NULL) //Открываем файл на чтение
    {
    printf("Cannot open input file.\n"); //Если не открылся
    getch();
    return 1;
    }
        FILE *f1;
    if ((f1 = fopen("test1.txt","w"))== NULL) //Открываем файл на чтение
    {
    printf("Cannot open input file.\n"); //Если не открылся
    getch();
    return 1;
    }
    
    //начинаем считывание символов из файла
    while (!feof(f)) //Пока не дошли до конца файла
        {
            ch=fgetc(f);
            if(ch!=32)
                {while(ch!=32)
                    {
                    chs+=(int)ch-48;
                    ch=fgetc(f); if(ch!=32) chs*=10; 
                    else {cout << chs << endl; M[k]=chs; k++; chs=0;}
                    }
                }
        }
    //запись в файл f1
    for(i=0;i<k;i++)
    {
        for(j=0;j<i;j++)
        {if(M[i]==M[j]) flag=1;}
        if(flag==0) {itoa(M[i], a, 10); putc(chs, f1);}
        flag=0;
    }
    fclose(f);
    fclose(f1);
    //getchar();
    return 0;
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2010, 01:19
Ответы с готовыми решениями:

Задание со странным символом
Прошу помочь. Совершенно не пойму чего от меня хотят

В XP странным образом не работает звук
Звук перестает работать после новой установки дров( тех же, что и работают)....

Странным образом зависает система!
Здравствуйте! После включения компьютера, минуты через 2-3 блокируется либо...

Винда странным образом зависает
Последние месяца два windows-семёрка странным образом зависает. На нажатие...

Не работает звук странным образом
Такая проблема. Переустановил windows. Поставил драйвера на видео, мать и...

2
Roma_F
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
22.05.2010, 10:38 #2
Цитата Сообщение от broDiaga_cpp Посмотреть сообщение
прога останавливает выполнение и всё
что значит останавливается?
что происходит при пошаговой отладке?
0
broDiaga_cpp
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
22.05.2010, 15:28  [ТС] #3
Останавливается она, значит выводит мне содержимое первого файла и всё. Окно само не закрывается и на enter не реагирует. Я в коде вообще убрал второй файл и всё, что и ним делается. Просто поставил, чтобы после закрытия первого файла он мне вывел абрукадабру. Он и её не выводит. Я так понимаю, что дело в первом файле. При пошаговой отладке всё то же самое.

Добавлено через 35 минут
Хотя нет. Всё дело в цикле просмотра первого файла. Из него не хочет выходить. Буду дальше смотреть))

Добавлено через 26 минут
Всё получилось)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    while (!feof(f)) //Пока не дошли до конца файла
        {   
            ch=fgetc(f); if(feof(f)!=NULL) goto m1;
            if(ch!=32)
                {while(ch!=32)
                    {
                    chs+=(int)ch-48;
                    ch=fgetc(f); if(feof(f)!=NULL) goto m1; if(ch!=32) chs*=10; 
                    else {cout << chs << endl; M[k]=chs; k++; chs=0;}
                    }
                }  
        }
m1: fclose(f);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2010, 15:28

странным образом повышается ping
Добрый день. Имеется инет сервер Win 2003 standart sp2, он же файрвол(MS ISA...

Киририллица странным образом отображается
На сайте странным образом отображается кириллица, хотя и в БД и в meta стоит...

Роутер странным образом режет скорость Wi-Fi
Приветствую знатоков. Проблема такая: роутер странным образом режет скорость...


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

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

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