Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2011, 10:22   #1
Pirr
Пользователь
 
Регистрация: 23.06.2009
Сообщений: 13
По умолчанию Заголовочные файлы в Си

Здравствуйте!
Начал изучать Си по книге В.Потопахина "Язык С. Освой на примерах" 2006г..
И сразу же на первых примерах столкнулся с "граблями".
Вот первый пример:
Цитата:
Сообщение от main.c
#include <iostream.h>
#include <conio.h>

int maximum(int);
int A[100];

void main ()
{
int N;
cin >> N;
for (int i=1; i<=N; i++) cin >> A[i];
int max=maximum(N);
cout << max;
getch();
}

int maximum (int m)
{
int max=A[1];
for (int i=2; i<=m; i++)
if (max<A[i]) max=A[i];
return max;
}
Пользуюсь Linux Mint 10, GCC 4.4
При компилировании пишет:
main.c:1: fatal error: iostream.h: Нет такого файла или каталога
Начал копать в интернете и других книгах, выяснил следуещее:
Заголовки с окончанием .h - это старый стиль (но вот только для чего, для Си или С++ я не понял). Файла iostream.h и conio.h - у меня нету. Но вроде бы компилятор должен понимать и старую и новую форму заголовочных файлов.
В некоторых местах рекомендуют дописать using namespace std; - но это не помогает в Си, в других книгах по Си тоже ничего нет про пространство имен.

Может мне кто нибудь прояснить этот вопрос, какие заголовочные файлы мне использовать чтобы этот пример скомпилировался на gcc? И какие заголовочные файлы применимы к Си а какие к С++?
Pirr вне форума Ответить с цитированием
Старый 16.03.2011, 10:53   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

iostream, а соответственно, и потоки cin/cout в Си отсутствуют, они есть только в C++. conio же обычно присутствует для DOS и Windows, в Linux его нет.
Честно говоря, мне кажется, что вам лучше выкинуть эту книгу куда подальше и взять что-то нормальное. Если автор не знает, что в Си нет классов (я уж молчу про то, что он не в курсе, что кроме Windows есть еще и Linux), а также не в курсе, что массивы индексируются начиная с нуля - то он клинический идиот с манией величия.

P.S. Если вы все-таки хотите вымучить этот пример - то смотрите в сторону printf/scanf и getchar (подключайте stdio.h)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же

Последний раз редактировалось Гром; 16.03.2011 в 10:56.
Гром вне форума Ответить с цитированием
Старый 16.03.2011, 11:27   #3
Pirr
Пользователь
 
Регистрация: 23.06.2009
Сообщений: 13
По умолчанию

Спасибо за разъяснения.
У меня есть куча книжек в электронике и чуток на бумаге.
Может что нибудь порекомендуете, но только по Си и чтобы в Linux работало.
Pirr вне форума Ответить с цитированием
Старый 16.03.2011, 12:33   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Честно говоря, сам книжек именно по Си не читал, но почему бы не взять Кернигана и Ритчи?
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 16.03.2011, 12:50   #5
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Можно еще взять "Полный справочник по С++" Герберта Шилдта.
В первой части книги как раз описывается язык С как подмножество языка С++.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 16.03.2011, 17:48   #6
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

Цитата:
Может что нибудь порекомендуете, но только по Си
(Art of C) Искусство программирования на С. Ричард Хезфилд, Лоуренс Кирби.
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 17.03.2011, 11:12   #7
Pirr
Пользователь
 
Регистрация: 23.06.2009
Сообщений: 13
По умолчанию

Спасибо за рекомендации.
У меня вот еще есть книга Стефана Кочан "Программирование на языке С" - полное введение в язык програмирования С. Попробую ее почитать.
Pirr вне форума Ответить с цитированием
Старый 17.03.2011, 16:02   #8
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

Си ненадо учить, если вы собираетесь писать на с++, учите сразу с++, зная с++, можно будет и на си писать без особых проблем. А про заголовки - иногда они с .h (стандартные stl-овские) иногда без. using namespace std; - это чисто фишка си++, без нее надо будет писать не cin а std::cin каждый раз
UltimaBeaR вне форума Ответить с цитированием
Старый 17.03.2011, 19:50   #9
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Цитата:
Си ненадо учить, если вы собираетесь писать на с++, учите сразу с++, зная с++, можно будет и на си писать без особых проблем.
будет всего 1 проблема - выучить с++ без С представляется почти невозможным, при учете того что 80% книг дают с++ учитывая что "с" уже известен
onewho вне форума Ответить с цитированием
Старый 17.03.2011, 23:38   #10
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Брайн Страуструп - С++
книга от создателя, вроде правильно имя написал
сам ее читал, думаю Вам отлично подходит
в ней нужно только примерно понимать что такое программирование)
а С там неявно описывается при описании С++
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заголовочные файлы legendary Общие вопросы C/C++ 1 11.09.2010 19:41
Заголовочные файлы DirectX _-Re@l-_ Общие вопросы Delphi 1 31.07.2010 20:14
Заголовочные файлы и windows 7 papochka Общие вопросы C/C++ 7 14.11.2009 22:05
Заголовочные файлы Гром Общие вопросы C/C++ 4 31.08.2009 15:36
Заголовочные файлы. C++ Vi_King Помощь студентам 2 03.04.2008 18:47