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

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

11.10.2016, 23:43. Показов 4778. Ответов 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,430
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,430
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,430
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,430
13.10.2016, 17:43
Цитата Сообщение от va1n4a Посмотреть сообщение
остальные символы программа уже подсчитывает как надо
ab - это не символ, это уже слово. Задачу сформулируй.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,308
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,430
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,430
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
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru