Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для PaulPreslee
0 / 0 / 0
Регистрация: 29.07.2017
Сообщений: 4

Не отрабатывает функция printf(), при условии удачной компиляции программы

30.07.2017, 03:22. Показов 1904. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <stdio.h>
 
#define IN      1
#define OUT  0
 
int main(){
        int c, nl, nw, nc, state;
 
        state = OUT;
        nl = nw = nc = 0;
 
 
        while((c=getchar()) != EOF){
            ++nc;
            if(c == '\n')
                ++nl;
            if(c == ' ' || c == '\n' || c == '\t')
                state = OUT;
            else if (state == OUT){
                state = IN;
                ++nw;
            }
        }
 
            printf("%d%d%d\n", nl, nw, nc);
 
 
return 0;
 
 
    
}
Добавлено через 4 часа 13 минут
Ребят почему printf не выводит данные после цикла while
запускаю через в консоли exe ./ запускается и программа ждет от пользователя ввесли данные ввожу и она выводит мне их обратно на экран
получается как бы она не запускает меня в цикл While что ли ил что то я не могу понять два дня уже бьюсь

УСЛОВИЯ ЗАДАЧКИ это пример из книги|
Напишем программу, которая бы подсчитывала количество каждой из цифр,количество символов пустого пространства (пробелов, табуляций, переходов на новую строку)и количество всех остальных символов во входном потоке. Задача довольноискусственная, но позволяет проиллюстрировать несколько аспектов языка С в одной программе.Итак, у нас есть двенадцать возможных категорий входных данных. Удобно завестимассив, чтобы держать в нем количество вхождений каждой цифры, вместо того чтобы объявлять десять отдельных переменных. Вот первая версия такой программы:
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
#include <stdio.h>
 
#define IN      1
#define OUT   0
 
int main(){
        int c, nl, nw, nc, state;
 
        state = OUT;
        nl = nw = nc = 0;
 
 
        while((c=getchar()) != EOF){
            ++nc;
            if(c == '\n')
                ++nl;
            if(c == ' ' || c == '\n' || c == '\t')
                state = OUT;
            else if (state == OUT){
                state = IN;
                ++nw;
            }
        }
 
            printf("%d%d%d\n", nl, nw, nc);
 
 
return 0;
 
 
    
}
help me please. Thanks!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.07.2017, 03:22
Ответы с готовыми решениями:

Неправильно отрабатывает запрос при условии что текстовое поле Is Null
Добрый вечер, есть запрос который делает выборку данных с таблицы при условии что текстовое поле Is not Null. Само поле...

Не запускается программа после удачной компиляции
Здравствуйте! после удачной компиляции при запуске программа вылетает с ошибкой (ничего не успевает вывести даже) выводится...

Уравнение теплопроводности при условии U(x,0)=дельта функция(x-a)
Как решить такое уравнения мат. физики Ut=Uxx+xUx????? при условии U(x,0)=дельта функция(x-a)

5
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
30.07.2017, 04:53
Единственное, что изменил
C
1
printf("%d %d %d\n", nl, nw, nc);
чтобы числа в одно не сливались
Code
1
2
3
$ ./a.out 
any many money more
1 4 20
что не так-то?
1
 Аватар для PaulPreslee
0 / 0 / 0
Регистрация: 29.07.2017
Сообщений: 4
30.07.2017, 06:54  [ТС]
У меня почему-то после запуска после ввода данных и нажатия Ентера прорамма не завершается и не выдает результат, а просит еще ввести данные

Добавлено через 12 минут
Цитата Сообщение от PaulPreslee Посмотреть сообщение
У меня почему-то после запуска после ввода данных и нажатия Ентера прорамма не завершается и не выдает результат, а просит еще ввести данные
Выход и завершение программы проиcходит только по нажатию С^Z, C^C "Спасибо за помощь"
0
1 / 1 / 1
Регистрация: 06.10.2015
Сообщений: 34
30.07.2017, 10:47
Лучший ответ Сообщение было отмечено PaulPreslee как решение

Решение

В данном случае Ctrl+C это выход из программы, чтобы сделать End of file (EOF) у вас в условиях надо нажать Ctrl+D
1
 Аватар для PaulPreslee
0 / 0 / 0
Регистрация: 29.07.2017
Сообщений: 4
30.07.2017, 18:53  [ТС]
Спасибо тебе добрый человек открыл глаза на очень важный вопрос всей этой дискусии. Действительно Ctrl+D это сочетание которое получается гиннерирует EOF -1 и мы выходим из цикла while! и программа корректно завершается !!! Об этом на мой взгляд очень важном в этом вопросе и зарыт ключевой момент, а как ни странно об этой гиннерации вообще ни слова ни сказано ни в одном источнике !!!
Кстати Ctrl+D- это единственный способ как можно сгенирировать EOF конец фала ???? или есть варианты????? Коллеги Всем спасибо тема раскрыта!!!
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
30.07.2017, 21:49
Цитата Сообщение от PaulPreslee Посмотреть сообщение
Ctrl+D это сочетание которое получается гиннерирует EOF -1
Ctrl-D не "гиннерирует" -1, и даже не генерирует. Это сочетание клавиш определяет окончание входного потока (файла).
Посикс системы и Линукс в том числе не различают текстовые и бинарные файлы и поэтому не существует специального символа конца файла.
Просто когда файл реально заканчивается, функции наподобе getc() возвращают EOF (-1).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.07.2017, 21:49
Помогаю со студенческими работами здесь

Как сделать при событии один пункт активным, а все остальные неактивны при условии что это общая функция
Вот к примеру: http://jsbin.com/uhiqap/1/edit на галерею когда клацаешь - чтоб была одна фотка большая, только активная при...

Запуск программы при определенном условии
Доброго времени суток! Можно проверить наличие определенного файла if not exist file.exe goto exenotfound Возможно ли сделать запуск...

Перезагрузка программы при определённом условии
Здравствуйте. Ситуация следующая, на сервере круглосуточно работает программа ЗБ, для её стабильной работы написан батник, который...

Как прервать выполнение программы при некотором условии?
Всем здравствуйте. Вопрос по отладке программ в C++Builder6. void __fastcall TForm1::Button1Click(TObject *Sender) { int k =...

Как сделать выход из программы при условии выполнения предписания?
Смысл кода: вводим столь-ко то значений и находим из них максимальное. Как сделать так, чтоб, когда вводимое значение было равно...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru