Форум программистов, компьютерный форум CyberForum.ru

EOF K&R - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ макросы http://www.cyberforum.ru/cpp-beginners/thread946192.html
#include <iostream> using namespace std; #define printarray(x,y)//вывод массива x-имя массива, y-число элементов???? int main() { const int size=10; int arr; for(int i=0;i!=size;i++) {
C++ Можно ли записать файл в срытый раздел диска? Можно ли записать файл в срытый раздел диска? Всмысле нет у раздела буквы он скрыт, если простым языком, в 7-ке раздел создается автоматом насколько я знаю, нужна данная весчь для того что бы сохранять пару строк конфигурации, дабы не конфликтовать с deep freeze или восстановлением системы. Если скажите что пишу вирус, то сразу нет, домашнее задание при устройстве на работу. Уже все прогуглил... http://www.cyberforum.ru/cpp-beginners/thread946161.html
Cделать программу, реализующую учет, подсчет и хранение данных C++
Подскажите! Закончил изучение книги - Дейтел: Как программировать на С++, в основном все ясно, а что не ясно - не критично, со временем пойму, возник вопрос что дальше учить, что меня интересует: Мне надо сделать программу - учет, подсчет, хранение данных; НЕ в консольном окне, а в windows form, время меня сильно поджимает, а так же я пока не планирую становится суперпрограммистом, по этому...
C++ Наибольшая общая подстрока
Люди из раздела "алгоритмы" молчат.. спрошу тут..Прошу прощения за "флуд". На днях отправил резюме в Яндекс. Откуда мне прислали задание-найти наибольшую общую подстроку. Строк не больше 10, символов в 1 строке не больше 10 000. Я взял наивный алгоритм. Реализовал реализовал его не совсем так, как в Википедии(эффективнее). Все отлично, он прошел 14 тестов, везде укладывался в 1 секунду. Но...
C++ с++ перегрузки http://www.cyberforum.ru/cpp-beginners/thread946120.html
Нужна помощь с реализацией кода(перегрузка добавления элемента в массив) Полная постановка задачи. АТД - множество с элементами типа char. дополнительно перегрузить следующие операции: + - добавить элемент в множество (типа Char + set); (не понимаю как сделать) + - объединение множеств; (сделал) == - проверка множеств на равенство; (сделал) #include "stdafx.h" #include <iostream>...
C++ Всеми любимый random() Здравствуйте. Проблема такая, мне необходимо вызывать рандом в программе несколько раз для генерации новых значений переменных. а именно: void RandomFunct() { x=1 + rand() % 100 +1; y=1 + rand() % 100 +1; } подробнее

Показать сообщение отдельно
Kontaktnik
2 / 2 / 2
Регистрация: 22.08.2012
Сообщений: 24
31.08.2013, 02:09     EOF K&R
Всем доброго времени суток. Изучаю Си по Дейтелам, а теперь попала в руки книга авторов языка. Интересно теперь будет параллельно по двум книгам вести своё обучение. Так вот о чём я, не могу понять вродеб-то простых вещей. Объясните пожалуйста.

Итак, сначала выясним число EOF, простите уж за мой нубский слэнг. Поехали:
C
1
2
3
4
5
6
7
8
#include <stdio.h>
 
int main()
{
   printf("EOF is %d\n", EOF);
 
   return 0;
}
Ответ: EOF is -1 // здесь всё понятно

Идём дальше:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
// подсчёт пробелов, табуляций и новых строк
main()
{
   int c, nb, nt, nl;
   nb = 0; // кол-во пробелов
   nt = 0; // кол-во табуляций
   nl = 0; // кол-во новых строк
 
   while ((c = getchar() != EOF)) {
      if (c == ' ')
         ++nb;
      if (c == '\t')
         ++nt;
      if (c == '\n')
         ++nl;
   }
 
   printf("%d%d%d\n", nb, nt, nl);
   return 0;
}
Вот в этой программе прямо-таки что хочешь делай, ничего не происходит.

wdfwefwec\n wdfwef
fwefwefew
wefwfwef-1
-1
-1
fwefwc // это мои "танцы" в консоле, до тех пор, пока не нажимаю ctrl+D(linux), затем нули:
000

Не задавая вопрос, ещё один пример:
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
main()
{
   int c;
 
   while (c = getchar() != EOF)
      printf("%d\n", c);
   printf("%d - at EOF\n", c);
 
   return 0;
}
1
1
1
1
-1
1
1
1 // ctrl+D
0 - at EOF

Опять "танцы", пока не нажата комбинация ctrl+D. Ввожу еденицу, программа мне три в ответ. В цикле про три ответа ничего не говорится. Ввожу EOF, то бишь -1, опять три ответа. Что-то я не могу в этом ничего понять. Может я чего-то недопонимаю и делаю неправильно ? Объясните новичку.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru