Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
_SayHello
612 / 361 / 112
Регистрация: 30.07.2015
Сообщений: 1,278
1

Не получаются примеры из Керигана и Ричи

25.07.2016, 11:01. Просмотров 310. Ответов 8
Метки нет (Все метки)

Добрый день! Решил на досуге почитать книжку по языку Си Керигана и Ричи. В первых же примерах столкнулся с проблемами:
1) первая программка просто занимается копированием символов пока не встретит окончание которое дефайном забито на 0.
Проблема: в терминале ввожу строку нажимаю enter копирует мою писанину даже если там нет 0. И никак не могу выйти из цикла даже если в конце строки ставлю 0
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdio.h"
#include <conio.h>
 
#define EOF 0
int main()
{
    int c;
    while ((c = getchar()) != EOF)
    {
        putchar(c);
    }
    _getch();
    return 0;
}
2. Программка должна посчитывать символы в строке пока не встретит опять же EOF который 0; Тут вообще программка упарывается после введения строки и нажатия enter с 0 и без 0.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "stdio.h"
#include <conio.h>
 
#define EOF 0
int main()
{
    long NC;
    while (getchar() != EOF)
        ++NC;
    printf("%1d\n", NC);
    _getch();
    return 0;
}
IDE visual studio 2013

Добавлено через 25 минут
во второй ошибку исправил там была не определена переменная long NC. Сделал NC = 0; перестала лезть ошибка, но никак не может найти конец файла

 Комментарий модератора 
5.16 Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Правила форума
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2016, 11:01
Ответы с готовыми решениями:

не получаются куки
Здравствуйте . я - только-только начинающая, не судите строго. работаю в...

таблицы не получаются
почему на первой форме отображается таблица выезд МЧС,а на второй ставлю...

не получаются запросы
Доброго времени суток! У меня проблема: есть задание по БД Access, которое у...

Не получаются сессии
session_start(); $_SESSION='Hello world!'; выдаёт .

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

8
nimazzzy
Заблокирован
25.07.2016, 11:24 2
Цитата Сообщение от _SayHelli Посмотреть сообщение
окончание которое дефайном забито на 0.
У символа '0' код не 0. Отличай коды символов от их отображений. Посмотри в ASCII таблицу. Для второй то же самое.
1
_SayHello
612 / 361 / 112
Регистрация: 30.07.2015
Сообщений: 1,278
25.07.2016, 13:06  [ТС] 3
nimazzzy, спасибо, глупо получилось. Еще глупый вопрос: по аски у 0 код 48. Как в консоли прописать этот код? \48 получается(
0
nimazzzy
Заблокирован
25.07.2016, 13:09 4
Зачем тебе прописывать этот код в консоли? Если ты вводишь символ 0, программа и видит 48.
0
_SayHello
612 / 361 / 112
Регистрация: 30.07.2015
Сообщений: 1,278
25.07.2016, 13:12  [ТС] 5
nimazzzy, ну вот я примеру вторая программа, я в консоли пишу символы, а дальше он должен посчитать смволы до EOF и выдать результат. Не могу добиться вывода результата(
0
nimazzzy
Заблокирован
25.07.2016, 13:19 6
Для второй программы то же самое, что и для первой про код символа.
0
_SayHello
612 / 361 / 112
Регистрация: 30.07.2015
Сообщений: 1,278
25.07.2016, 13:46  [ТС] 7
nimazzzy, это я понял. Не понятно что конкретно нужно в консоли вбить чтобы он понял, что это EOF

Добавлено через 11 минут
nimazzzy,
сделал
C++
1
#define EOF 48
и после ввода 0 и enter посчтались символы до 0. Как я понял по умолчанию EOF = -1; как правильно ввести -1?)

Добавлено через 12 минут
Вот интересное нашел оказывается в консоли EOF определяется как ctrl+z. Но самое интересное, что если писать строку и в конце поставить ctrl+z то он поставит этот символ но при нажатии enter происходит только переход на слудующую строку, а если в следующей строке снова вбить ctrl+z и enter, то он посчитает символы но на 1 больше видимо еще перевод строки засчитывает
0
nimazzzy
Заблокирован
25.07.2016, 13:47 8
Ctrl+Z на пустой строке и Enter.

Добавлено через 47 секунд
Цитата Сообщение от _SayHelli Посмотреть сообщение
то он посчитает символы но на 1 больше видимо еще перевод строки засчитывает
Символ перевода строки есть. Ожидаемо.
1
Тупенький
-7 / 25 / 3
Регистрация: 09.11.2015
Сообщений: 133
29.07.2016, 16:51 9
Прата, Стивен.
П70 Язык программирования С . Лекции и упражнения , 5-е издание . : Пер. с англ. -
М . : Издательский дом "Вильяме " , 20 1 3 . - 960 с . : ил. - Парал . тит. англ.
Попробуй почитать сие чудо. Мне больше понравилось.
0
29.07.2016, 16:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2016, 16:51

не получаются кнопки
Здравствуйте, я не могу понять почему у меня кнопка не нажата получаеться...

Не получаются отчеты в БД
Система должна выдавать отчеты по запросу менеджера: прайс-лист на квартиры...

2 примера) не получаются


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

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

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