Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
 Аватар для va1n4a
5 / 5 / 2
Регистрация: 11.03.2012
Сообщений: 103

Почему то ничего не происходит в скомпилированной программе

11.10.2016, 23:43. Показов 4550. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему то ничего не происходит в скомпилированной программе ошибок компилятор не нашел ,но никаких значений на экран не выводит в программе
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
#include <iostream>
#include <fstream>
#include <stdio.h>
 
using namespace std;
 
int main()
{
    FILE *f1=fopen("text.txt","r");
    int c1;
     char ch;//переменная для хранения считываемого символа
    int ab=0,a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;//переменные для хранения кол-ва нужных нам букв
    if (f1 == NULL) perror ("Ошибка открытия файлаn");
  else{
fseek(f1,0, SEEK_SET);//идем в начало файла
    while(!fseek(f1,0, SEEK_END))//пока не конец файла
 
    {
     getc(f1)>>ch;//читаем символ
     //getc(f1)=ch;
        switch (ch)//проверяем является ли он нужным нам,если да увеличиваем соответствующий счетчик
        {
            case 'a':{a++;break;}
            case 'b':{b++;break;}
            case 'c':{c++;break;}
            case 'd':{d++;break;}
            case 'e':{e++;break;}
            case 'f':{f++;break;}
            case 'g':{g++;break;}
            case 'h':{h++;break;}
           // case 'ab':{ab++;break;}
        }
    }
    if(ab!=0){
 cout<<"значение аb присутствует";
}else {cout<<"значение аb отсутствует";  }
   //вывод на экран результата
   cout<<"A="<<a<<"B="<<b<<"C="<<c<<"D="<<d;
   cout<<"E="<<e<<"F="<<f<<"G="<<g<<"H="<<h;
    fclose(f1);//закрываем поток
    return 1;
}}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2016, 23:43
Ответы с готовыми решениями:

При запуске скомпилированной программы ничего не происходит
Здравствуйте, программа которая написана на qt запускается только в самом &quot;QtCreator&quot;. Если же запускать через папку где лежит...

В программе ничего не происходит
Программа компилируется, ошибок нет, но она отказывается запускаться? Как это исправить можно? #include &lt;iostream&gt; #include...

Нажимаю на Run и ничего не происходит.Почему?
Ребят я новичок вот только начал изучать паскаль купил книгу все делал по инструкции.Вроде ничего сложного ...скачал турбо паскаль 7.0 ,...

32
 Аватар для va1n4a
5 / 5 / 2
Регистрация: 11.03.2012
Сообщений: 103
13.10.2016, 11:35  [ТС]
Студворк — интернет-сервис помощи студентам
TheCalligrapher, всмысе char у меня же int ch=getc(f1);
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
13.10.2016, 11:45
То, что в одинарных кавычках - символьный литерал. Размер обычного символа равен размеру char.

Добавлено через 3 минуты
getc() читает символы как unsigned char, потом преобразует в int, поэтому тут, значение int, не может быть больше, чем значение, которое может поместиться в char.
0
 Аватар для va1n4a
5 / 5 / 2
Регистрация: 11.03.2012
Сообщений: 103
13.10.2016, 12:20  [ТС]
И как решить данную проблему не подскажет кто новичку?)
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
13.10.2016, 12:26
Цитата Сообщение от va1n4a Посмотреть сообщение
И как решить данную проблему
Сформулируй проблему.
0
 Аватар для va1n4a
5 / 5 / 2
Регистрация: 11.03.2012
Сообщений: 103
13.10.2016, 16:16  [ТС]
Сформулируй проблему.
Надо чтобы подсчитывалось кол-во своловосочетания ab из файла
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
13.10.2016, 16:37
Цитата Сообщение от va1n4a Посмотреть сообщение
Надо чтобы подсчитывалось кол-во своловосочетания ab из файла
Только ab? Что у тебя в файле?
0
 Аватар для va1n4a
5 / 5 / 2
Регистрация: 11.03.2012
Сообщений: 103
13.10.2016, 17:26  [ТС]
в файле строка abcdefgksdsa остальные символы программа уже подсчитывает как надо
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
13.10.2016, 17:43
Цитата Сообщение от va1n4a Посмотреть сообщение
остальные символы программа уже подсчитывает как надо
ab - это не символ, это уже слово. Задачу сформулируй.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,219
13.10.2016, 17:56
Цитата Сообщение от sergestus Посмотреть сообщение
Вам нужно использовать feof (определение достижения конца файла), как вам советовали:
C++
1
while(!feof(f1))
Да, это по-видимому то, что хотел сказать автор. Но тем не менее это - кривоватая реализация, которая может привести к классическим проблемам на последней итерации. Как уже говорилось выше, циклы с предусловием !feof - это в С и С++ почти всегда ошибка.

Правильно, как уже говорили выше

C++
1
2
3
4
5
6
7
do
{
  int ch = getc(f1);
  if (ch == EOF)
    break;
  ...
} while (1);
или любой другой вариант цикла с выходом из середины. Или, если вам больше нравится

C++
1
2
3
4
5
int ch;
while ((ch = getc(f1)) != EOF)
{
  ...
}
Функция feof - не нужна.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
13.10.2016, 17:59
Лучший ответ Сообщение было отмечено va1n4a как решение

Решение

va1n4a, пока задачу формулируешь, вариант на рассмотрение:
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
    ifstream fin("text.txt");
    if (!fin)
    {
        cerr << "Ошибка открытия файлаn" << endl;
        system("papuse");
        return 0;
    }
 
    int c1;
    char ch;//переменная для хранения считываемого символа
    int ab=0,a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;//переменные для хранения кол-ва нужных нам букв
    
    while(fin.get(ch))
    {
        if (ch == 'a' && (fin.peek() == 'b'))
        {
            fin.get(ch);
            ++ab;
        }
        else
        {
            switch (ch)//проверяем является ли он нужным нам,если да увеличиваем соответствующий счетчик
            {
                //case 'ab':{ab++;break;}
                case 'a':{a++;break;}
                case 'b':{b++;break;}
                case 'c':{c++;break;}
                case 'd':{d++;break;}
                case 'e':{e++;break;}
                case 'f':{f++;break;}
                case 'g':{g++;break;}
                case 'h':{h++;break;}
 
            }
        }
    }
    if (ab == 0)
        cout << "значение аb отсутствует " << "\n";
    else
        cout<<"значение аb присутствует кол-во вхождений ->" << ab << "\n";
    
    system("pause");
1
 Аватар для va1n4a
5 / 5 / 2
Регистрация: 11.03.2012
Сообщений: 103
13.10.2016, 18:09  [ТС]
nd2 смотрите надо подсчитать кол-во входений словосочетаний ab в текст а так же чилсло вхождений какдого символа a,b,c,d,e,f,h
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
13.10.2016, 18:28
Лучший ответ Сообщение было отмечено va1n4a как решение

Решение

Цитата Сообщение от va1n4a Посмотреть сообщение
а так же чилсло вхождений какдого символа a,b,c,d,e,f,h
Т.е., a и b, которые входят в сочетание ab, нужно тоже посчитать как отдельные символы a и b? Или считать только те a и b, которые не входят в сочетание ab?

Добавлено через 7 минут
Если второе, то вариант кода я показал. Если первое, то добавить, при увеличении ab, ещё увеличение a и b.
1
79 / 79 / 34
Регистрация: 26.10.2011
Сообщений: 220
14.10.2016, 15:32
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Да, это по-видимому то, что хотел сказать автор. Но тем не менее это - кривоватая реализация, которая может привести к классическим проблемам на последней итерации. Как уже говорилось выше, циклы с предусловием !feof - это в С и С++ почти всегда ошибка.
Да, вопрос вроде не сложный и тема расспространненая, а сколько подводных камней...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.10.2016, 15:32
Помогаю со студенческими работами здесь

При авторизации почему-то ничего не происходит
Можете помочь с авторизацией , все коды прописаны ошибок нет но почемуто при авторизации не чего не происходит

Пределы (почему ничего не происходит с синусом n в квадрате)
Здравствуйте, решение есть , но не понятен один момент , почему ничего не происходит с синусом н в квадрате. Можно , пожалуйста очень...

Почему программа зависает и ничего не происходит дальше?
Все та же пересылка списка файлов, убрал все лишнее на данный момент, оставил только пересылку списка файлов.. В клиентской части потом...

Почему при нажатии на Space ничего не происходит?
Почему при нажатии на Space ничего не происходит? форма не закрывается private void Form1_KeyDown(object sender, KeyEventArgs e) ...

Почему после нажатия на кнопку ничего не происходит?
1) почему после нажатия на кнопку ничего не происходит, и почему она сразу не отображается 2) как избавиться от мерцания во время...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru