Форум: Форум C++Разное
Новые темы: 00
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Программа Hello world!
 
 автор: Программер   (26.12.2006 в 23:28)
 
 

Кто-нибудь может написать программу Hello world! на C и на C++? Вообще разница какая в этом случае будет?

PS Использую gcc для компиляции...

  Ответить  
 
 автор: cheops   (27.12.2006 в 01:08)   письмо автору
 
   для: Программер   (26.12.2006 в 23:28)
 

В стиле C++ программа, выводящая Hello world может выглядеть следующим образом
#include <iostream>
using namespace std;

int main()
{
  cout << "Hello world\n";

  return 0;
}

  Ответить  
 
 автор: cheops   (27.12.2006 в 01:12)   письмо автору
 
   для: Программер   (26.12.2006 в 23:28)
 

В C-стиле программа будет выглядеть следующим образом
#include <stdio.h>

int main()
{
  printf("Hello world\n");

  return 0;
}

  Ответить  
 
 автор: cheops   (27.12.2006 в 01:19)   письмо автору
 
   для: Программер   (26.12.2006 в 23:28)
 

Разница здесь заключается в используемых библиотеках ввода-вывода, если в случае C++ используется объектно-ориентированная библиотека IOStream и стандартный поток cout, то в случае C - используется функция printf() стандартной библиотеки stdio.h. Кстати, именно это один из главных признаков (кроме расширения файлов :), по которому в большинстве случаев можно определить, что перед нами C++ или C-код.

В C++ стандартная библиотека помещена в пространство имён std, поэтому, чтобы не писать перед каждым стандартным именем префикс std::, мы помещаем в начало объявление
using namespace std;


Кроме, того стандартные библиотеки в C++, согласно новому стандарту указываются без расширения - это позволяет сделать код более переносимым, так как разные производители компиляторов могут присваивать стандартным заголовочным файлам разные расширения .h, .hpp, .hxx и т.п. Отказ от расширения в объявлении позволяет решить проблему переносимости.

  Ответить  
 
 автор: Программер   (27.12.2006 в 12:08)
 
   для: cheops   (27.12.2006 в 01:19)
 

спасибо :)

  Ответить  
 
 автор: mookapek   (28.12.2006 в 11:42)   письмо автору
 
   для: Программер   (27.12.2006 в 12:08)
 

Я вот так эту программу пишу:

#include<conio.h>
void main()
{
 clrscr();
 cprintf("Hello, world!");
 getch();
}

  Ответить  
 
 автор: Fddd   (24.01.2007 в 14:00)   письмо автору
130.5 Кб
 
   для: mookapek   (28.12.2006 в 11:42)
 

Народ, извните, я немного непонял :)
Вот запускаю C++ Builder 6 там появляется окно Form и Unit1.cpp. Как я понял код надо писать в Unit1.cpp но куда именно?

  Ответить  
 
 автор: cheops   (24.01.2007 в 14:51)   письмо автору
 
   для: Fddd   (24.01.2007 в 14:00)
 

Нет, для консольных программ, нужно выбрать соответствующий проект. Т.е. сейчас нужно всё закрыть File->Close All. Выбрать новый консольный проект File->New->Other->Console Wizard. Вот там будет Unit1.cpp в котором можно будет писать конольный вариант "Hello world".

PS Если вы хотите писать "Hello world" в оконном варианте - он будет немного другим (если интересует - лучше завести отдельную тему).

  Ответить  
 
 автор: Fddd   (29.01.2007 в 18:35)   письмо автору
 
   для: 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:47)   письмо автору
 
   для: Fddd   (29.01.2007 в 18:35)
 

Так же неочень понятна запись
int main()
{
...
}
Что в данном случае означает int? Можно ведь без него написать.

  Ответить  
 
 автор: cheops   (29.01.2007 в 18:55)   письмо автору
 
   для: Fddd   (29.01.2007 в 18:47)
 

int это возвращаемый тип - по возращаемому значению операционная система ориентируется о том аварийно завершается программа или нет. Просто нужно писать - это стандарт.

PS Под новые вопросы лучше заводить новые темы.

  Ответить  
 
 автор: cheops   (29.01.2007 в 18:48)   письмо автору
 
   для: 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 Под новые вопросы лучше заводить новые темы на форуме - иначе потом очень сложно ссылаться на ответы, когда в теме обсуждается всё подряд :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования