| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > книга Б.Кернигана |
| Автор: algorithm 25.3.2007, 21:42 |
| Здравствуйте. Подскажите плиз на какой компилятор и на какую ОС расчитана книга "Язык программирования Си". А то у меня примеры к ней не собираются |
| Автор: mr.Anderson 25.3.2007, 22:03 |
| Насколько я знаю, эти примеры должны работать в большинстве компилеров, исключая только старые типа Borland C++ 3 и т.д. Эти примеры точно работают в Borland C++ Builder 5.0 - 6.0 и Visual C++ . |
| Автор: MAKCim 25.3.2007, 22:04 |
| Я так полагаю, на ANSI-совместимый С-компилятор (если издание >= 3) что за примеры? |
| Автор: algorithm 25.3.2007, 22:07 | ||
Вот такая программка выдаёт кучу ошибок в Visual C++. По мнению авторов она вроде должна работать...
|
| Автор: mr.Anderson 25.3.2007, 22:10 |
| Во-первых, не указан тип функции main(). Обычно это int. Не уверен насчет функции getchar() - вроде, она в conio.h или в iostream.h сидит. Остальное вроде так. |
| Автор: Greeen 25.3.2007, 22:11 |
| algorithm, бред. Скомпилировал. |
| Автор: codelord 25.3.2007, 22:14 |
| на стандартный ANSI C покажи код, часто видел в электронных вариантах функции в примерах большими буквами написаны, и в целом нет многих заголовков для примеров. обычно используются хедеры #include <stdio.h> #include <math.h> #include <time.h> #include <stdlib.h> может еще кое-чего. Добавлено через 1 минуту и 39 секунд о как быстро наотвечали |
| Автор: algorithm 25.3.2007, 22:20 |
| --------------------Configuration: Text1 - Win32 Debug-------------------- Compiling... Text1.c text1.c(9) : error C2018: unknown character '0x93' text1.c(9) : error C2143: syntax error : missing ')' before '%' : error C2198: 'printf' : too few actual parameters : error C2017: illegal escape sequence : error C2065: 'ld' : undeclared identifier : error C2146: syntax error : missing ';' before identifier 'n' : warning C4552: '%' : operator has no effect; expected operator with side-effect : error C2018: unknown character '0x94' : error C2065: 'n' : undeclared identifier : error C2059: syntax error : ')' Error executing cl.exe. Text1.obj - 9 error(s), 1 warning(s) |
| Автор: mr.Anderson 25.3.2007, 22:22 |
| algorithm, исправления, которые мы тут называли, внес? |
| Автор: Greeen 25.3.2007, 22:22 |
| algorithm, ты поставь то нормальные кавычки в printf. printf("%ld\n", nc); |
| Автор: mr.Anderson 25.3.2007, 22:23 | ||
И вообще мне очень не нравится вот это:
EOF - это константа конца файла. Мы вроде как не с файлом работаем? Добавлено через 1 минуту и 3 секунды Greeen, а разве там кавычки не обычные? Что ни день, то что-то новенькое. |
| Автор: algorithm 25.3.2007, 22:26 | ||
Да, исправления внёс
|
| Автор: codelord 25.3.2007, 22:27 | ||
| а так у тебя кавычки кривые руками набери в редакторе
|
| Автор: Greeen 25.3.2007, 22:29 |
| |
| Автор: mr.Anderson 25.3.2007, 22:30 | ||
codelord, а так, скорее всего, он получит предупреждение о неиспользуемых аргументах в функции. Тогда уж так:
|
| Автор: algorithm 25.3.2007, 22:30 | ||
mr.Anderson,
Мне тоже Просто в книге вроде предполагается , что программа должна работать и так... |
| Автор: mr.Anderson 25.3.2007, 22:32 | ||
| Ну, скомпилилось ли хоть? А то мы в этой теме быстро по 50 сообщений наберем... Добавлено через 1 минуту и 22 секунды А потом, кто вам мешает экспериментировать? Замените эту глупую EOF на, например, символ звездочки в одинарных кавычках. Вот так:
|
| Автор: Greeen 25.3.2007, 22:37 | ||
Необязательно с файлами... Для окончания ввода Ctrl+Z и Enter.
|
| Автор: codelord 25.3.2007, 22:38 | ||
а ты попробовал? |
| Автор: mr.Anderson 25.3.2007, 22:39 | ||
codelord, нет. Но вроде у меня в Билдере ворнинг выдавался... Не лучше ли перестраховаться?
Это я применительно к текущему случаю. |
| Автор: codelord 25.3.2007, 22:39 | ||
си не отличает файл от стандартного потока ввода и вывода |
| Автор: Greeen 25.3.2007, 22:40 |
| |
| Автор: MAKCim 25.3.2007, 22:42 |
не о чем |
| Автор: Greeen 25.3.2007, 22:44 |
| |
| Автор: codelord 25.3.2007, 22:50 |
| Greeen, да ладно тебе жалко чтоли люди поговорить хотят |
| Автор: Greeen 25.3.2007, 22:51 |
| codelord, да я всегда за.. А еще можно заменить while на do ... while |
| Автор: Любитель 25.3.2007, 23:56 |
| Вообще ошибка была одна - кавычки, набранные в юникоде (или, что скорее скопипастенные из книги). int перед main - не обязателен, в сях сие по дефолту (не путать с плюсами). return 0 - нефиг, сам догадается |
| Автор: Kuvaldis 26.3.2007, 00:39 | ||
mr.Anderson,
Как раз таки EOF для данного случая очень даже хорошо: тогда не будет никакого ограничения на ввод ПЕЧАТАЕМЫХ символов. Можно, конечно, еще на признак конца ввода поставить другие КОМБИНАЦИИ. |
| Автор: mr.Anderson 26.3.2007, 09:35 | ||||
| О, да я гляжу, дискуссия вчера далеко не закончилась... codelord, ну, вот видите.
А, а я от C++ отталкиваюсь.
Тогда можно глупый вопрос? Чему равна эта константа? |
| Автор: Greeen 26.3.2007, 09:39 |
| mr.Anderson, в stdio.h #define EOF (-1) |
| Автор: Валерия 26.3.2007, 09:41 | ||
-1 вроде как
|
| Автор: Любитель 26.3.2007, 12:53 |