|
автор: Программер (26.12.2006 в 23:28) |
|
| Кто-нибудь может написать программу Hello world! на C и на C++? Вообще разница какая в этом случае будет?
PS Использую gcc для компиляции... | |
|
|
|
|
|
|
|
для: Программер
(26.12.2006 в 23:28)
| | В стиле C++ программа, выводящая Hello world может выглядеть следующим образом
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world\n";
return 0;
} |
| |
|
|
|
|
|
|
|
для: Программер
(26.12.2006 в 23:28)
| | В C-стиле программа будет выглядеть следующим образом
#include <stdio.h>
int main()
{
printf("Hello world\n");
return 0;
} |
| |
|
|
|
|
|
|
|
для: Программер
(26.12.2006 в 23:28)
| | Разница здесь заключается в используемых библиотеках ввода-вывода, если в случае C++ используется объектно-ориентированная библиотека IOStream и стандартный поток cout, то в случае C - используется функция printf() стандартной библиотеки stdio.h. Кстати, именно это один из главных признаков (кроме расширения файлов :), по которому в большинстве случаев можно определить, что перед нами C++ или C-код.
В C++ стандартная библиотека помещена в пространство имён std, поэтому, чтобы не писать перед каждым стандартным именем префикс std::, мы помещаем в начало объявление
Кроме, того стандартные библиотеки в C++, согласно новому стандарту указываются без расширения - это позволяет сделать код более переносимым, так как разные производители компиляторов могут присваивать стандартным заголовочным файлам разные расширения .h, .hpp, .hxx и т.п. Отказ от расширения в объявлении позволяет решить проблему переносимости. | |
|
|
|
|
автор: Программер (27.12.2006 в 12:08) |
|
|
для: cheops
(27.12.2006 в 01:19)
| | спасибо :) | |
|
|
|
|
|
|
|
для: Программер
(27.12.2006 в 12:08)
| | Я вот так эту программу пишу:
#include<conio.h>
void main()
{
clrscr();
cprintf("Hello, world!");
getch();
}
|
| |
|
|
|
|
130.5 Кб |
|
|
для: mookapek
(28.12.2006 в 11:42)
| | Народ, извните, я немного непонял :)
Вот запускаю C++ Builder 6 там появляется окно Form и Unit1.cpp. Как я понял код надо писать в Unit1.cpp но куда именно? | |
|
|
|
|
|
|
|
для: Fddd
(24.01.2007 в 14:00)
| | Нет, для консольных программ, нужно выбрать соответствующий проект. Т.е. сейчас нужно всё закрыть File->Close All. Выбрать новый консольный проект File->New->Other->Console Wizard. Вот там будет Unit1.cpp в котором можно будет писать конольный вариант "Hello world".
PS Если вы хотите писать "Hello world" в оконном варианте - он будет немного другим (если интересует - лучше завести отдельную тему). | |
|
|
|
|
|
|
|
для: cheops
(24.01.2007 в 14:51)
| | Вот купил книжку "Самоучитель C/C++ и Borland C++Builder 2006" Автор: Борис Пахомов.
Пока нравиться, а дальше посмотрим.
Там такой вариант:
#include <stdio.h>
#include <conio.h>
int main()
{
printf("Hello\n");
getch();
}
|
Теперь я немного поясню, о том что я узнал:
getch() предназначен для ввода любого символа с клавиатуры. Здесь он для что бы Консольное окно не пропала после завершения выполнения вывода на экран.
#include <stdio.h> - Подключаем файл для оператора printf().
#include <conio.h> - Подключаем файл для оператора getch().
Теперь вопросы:
Как я понял, в консольном режиме весь код должен быть внутри функции main() и только в ней?
В коде(при загрузке консольного режима в Borland C++Builder 6) есть строки: #pragma hdrstop, #pragma argsused Как до меня только что дошло, это Коментарии? :)))))))))))
При включение консольного режима, я поставил "точку" на С++ а printf() заработал. Значит его тоже можно использовать в С++? Если да, то какая разница?
А можно ли писать русский текст (вместо Hello)?
Спасибо. | |
|
|
|
|
|
|
|
для: Fddd
(29.01.2007 в 18:35)
| | Так же неочень понятна запись
int main()
{
...
}
Что в данном случае означает int? Можно ведь без него написать. | |
|
|
|
|
|
|
|
для: Fddd
(29.01.2007 в 18:47)
| | int это возвращаемый тип - по возращаемому значению операционная система ориентируется о том аварийно завершается программа или нет. Просто нужно писать - это стандарт.
PS Под новые вопросы лучше заводить новые темы. | |
|
|
|
|
|
|
|
для: Fddd
(29.01.2007 в 18:35)
| | >Как я понял, в консольном режиме весь код должен быть внутри функции main() и только в ней?
main() - это функция с которой начинается программа и которая должна вызывать другие функции, вы можете писать код в других функциях, но вызывать хотя бы одну из них придётся из main().
>#pragma hdrstop, #pragma argsused Как до меня только что дошло, это Коментарии?
Нет, это директивы препроцессора.
>При включение консольного режима, я поставил "точку" на С++ а printf() заработал. Значит его
>тоже можно использовать в С++? Если да, то какая разница?
С++ включает в себя C и всё что работает под C работает и под C++ (за малым исключением, которое можно практически не примать во внимание).
>А можно ли писать русский текст (вместо Hello)?
Можно, однако необходимо будет настроить консоль на кодировку cp1251 при помощи строки (для использования функции system необходимо подключить заголовочный файл <cstdlib>)
system("SET NAMES 'cp1251'"); |
а в свойствах окна выбрать шрифт Lucida Console вместо точечных шрифтов.
PS Под новые вопросы лучше заводить новые темы на форуме - иначе потом очень сложно ссылаться на ответы, когда в теме обсуждается всё подряд :) | |
|
|
|