Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

простой пример на с++   Найти похожие ветки 

 
мазербо)   (2005-01-17 20:00) [0]

Нужно ввести с клавы число чтобы запомнилось в переменной а потом ее можно было показать. Пишу
#include <iostream.h>

int main(int r)
{
cout << "hello, enter value\n";
cin >> r;
cout << "ur number is = " r;
}

но не пашет, я тока хелоу ворлд на с++ написал, делфи форева %)


 
palva ©   (2005-01-17 20:54) [1]

Что значит не пашет? Программа не должна даже компилироваться.


 
мазербо)   (2005-01-17 20:55) [2]

мде...


 
Aleksandr   (2005-01-17 20:55) [3]

#include<stdlib.h>
#include<conio.h>

void main()
{
int a;
printf("Vvedite chislo");
scanf("%i", &a);
printf("/n Chislo a ravno = %i", a)
}


 
wicked ©   (2005-01-17 21:00) [4]


> #include <iostream.h>
>
> int main(int r)

argv хде?...
> {
> cout << "hello, enter value\n";
> cin >> r;
> cout << "ur number is = " r;

вообще не должно скомпилироваться... r к строке как относится?...
> }


> но не пашет, я тока хелоу ворлд на с++ написал, делфи форева
> %)

LMD....


 
мазербо)   (2005-01-17 21:12) [5]

Alexander Это С а мне надо с++ =)


 
марсианин ©   (2005-01-17 21:21) [6]


> argv хде?...

:)) argv не обязателен. по стандарту. иногда вообще пишут void main (void)

вот компилируется и работает
#include <iostream>

int main(int n)
{
   int x;
   std::cout << "enter value, stupid!";
   std::cin >> x;
   std::cout << "ur number is = " << x << std::endl;
}


вообще С++ сложен для новичка.. но потом затягивает. не потому, что лучше Делфи .. он просто другой..


 
Aleksandr   (2005-01-17 21:21) [7]

>мазербо)   (17.01.05 21:12) [5]

Нет, я сам это когда то писал  на С++ все работает, только в предпоследней строчке поставь точку с запятой.


 
wicked ©   (2005-01-17 21:25) [8]


> argv не обязателен. по стандарту. иногда вообще пишут void
> main (void)

угу, не нужен, ща в хелп глянул...
просто сработала привычка - сигнатуры для main(int argc, char * argv[]) и main(void) должны отличаться... а при отличии сигнатур мы получим визг линкера... или я чё-то пропустил?...


 
марсианин ©   (2005-01-17 22:06) [9]


> а при отличии сигнатур мы получим визг линкера


честно говоря не вникал в подробности. я так понял, что есть набор определенных сигнатур main, которые распознаются.. туда еще входят и юникодовый  wmain. (а также WinMain"ы, если мы о Визуал студио и тп)

еще, если заметил, int main(...) не должна возвращать значение. т.е. это не просто какая-то функция :)


 
wicked ©   (2005-01-17 22:21) [10]

> марсианин ©   (17.01.05 22:06) [9]

> еще, если заметил, int main(...) не должна возвращать значение.
> т.е. это не просто какая-то функция :)

как это - не должна?... обязана просто, если она int...
если не будет в ней явного return, то под билдером мы получим варнинг, а под vc - сообщение об ошибке...


 
марсианин ©   (2005-01-17 22:30) [11]


> если не будет в ней явного return, то под билдером мы получим
> варнинг, а под vc - сообщение об ошибке...

проверь :)
тот пример, что я привел выше компилируется студией без единого ворнинга


 
nikkie ©   (2005-01-17 23:20) [12]

>а под vc - сообщение об ошибке...

просто warning

>тот пример, что я привел выше компилируется студией без единого ворнинга

сам-то проверял?


 
марсианин ©   (2005-01-17 23:57) [13]


> просто warning

нет, под визуал студио 7 дот-нет именно ошибка. в 6-ой также. с  остальными не работал.
предупрежедние - когда не все пути управления ведут к возврату значения.

> сам-то проверял?

да, проверял


 
мазербо)   (2005-01-18 11:50) [14]

Все работает, спасибо. И еще стоит ли искать вижал 7.1 или хватит и 6.0 ? большая ли разница?


 
мазербо)   (2005-01-18 11:57) [15]

И еще  std:: это вызов стандартной команды из библиотеки?
просто есть пример в книге

#include <iostream.h>

void main()
{
 cout << "Hello, World\n";
}

и все работает, не надо писать std::cout << "Hello, World";


 
nikkie ©   (2005-01-18 16:54) [16]

>марсианин
[10] wicked говорит: будет ошибка
[11] ты говоришь: да не, даже warning не будет
[12] я говорю: будет warning
[13] ты говоришь: будет именно ошибка.
пришлось потратил некоторое время, чтобы понять вообще о чем речь. :))

я говорил про main. отсутствие return в нем дает warning в VC6.
в частности твой код его дает. то, что VC7 даже warning не выдает, удивило меня.

в случае любой другой не-void функции отсутствие return дает ошибку и в VC6, и в VC7.


 
марсианин ©   (2005-01-18 22:44) [17]


> в случае любой другой не-void функции отсутствие return
> дает ошибку и в VC6, и в VC7.

да.
кстати, когда дело касается ворнингов, не стоит забывать про warning level. по стандарту 3.

по поводу main..
еще Струструп в своем "Язык С++. специальное издание" ( 2мазербо) - настоятельно рекомендую)
упоминает, что return в main не обязателен. я сразу проверил в 7-ой.. все ок,  а 6-ая стоит на работе.. а там я не часто "хелло ворлд" пишу :)

т.е. такое поведение main - поведение, соответсвующее современному стандарту С++

6-ая студия создавалась раньше. не знаю в каком году она вышла, но на новый стандарт С++ не ориентировались.. наверное, отсюда и варнинг.
некоторые примеры из Страуструпа в 6-ой вообще не компилируются

кстати и 7-ая стандарту на 100% не соответствует, хотя там ситуация гораздо лучше, там из Страуструпа все компилируется (вроде бы :)

[15] мазербо)
обрати внимание
#include <iostream.h> - в твоей книге
и
#include <iostream> - в моей книге :)

разница: <iostream.h> - для программ в стиле С. чтоб старые исходники не пришлось править.
<iostream> - заголовок для С++ программ, и там все функции объявлены в пространстве имен std
std::cout - значит, что cout принадлежит пространству имен std
если ты уберешь std:: в моем примере - компилятор выдаст ошибку, что не объявленно cout.

6-ая или 7-ая? как ты понял они все-таки различаются.
используй наиболее современную реализацию С++.
и еще. достань книжку по-новее.


 
марсианин ©   (2005-01-18 22:48) [18]


> хотя там ситуация гораздо лучше, там из Страуструпа все
> компилируется (вроде бы :)

нет, не все.. частичная специализация шаблонов, например, не поддерживается.


 
kirasukii   (2005-01-18 23:18) [19]

Что вы понимаете под частичной специализацией?
Видимо я от жизни отстал.

Специализация вполне себе работает.

template <class T> class fooo {public: T t; void foo(){t;}};
void fooo<char>::foo(){t; ASSERT(0);}

 fooo<int> f1;
 fooo<char> f2;
 f1.foo();
 f2.foo();


 
марсианин ©   (2005-01-19 00:39) [20]


> void fooo<char>::foo(){t; ASSERT(0);}

это полная специализация.


Что вы понимаете под частичной специализацией?

ээ.. есть такая :) подробности - к Страуструпу. сам тоже не использую.


 
мазербо)   (2005-01-19 14:49) [21]

Спасибо марсианин, все разжевал :)

Сейчас взял книгу : Подбельский: Язык С++, 2000 г. Москва, Финансы и Статистика.

Вот по ней и учусь, поновее книжку это от Страуструпа, его специальное издание?


 
07BB:080Dh   (2005-01-19 15:10) [22]

мазербо)   (19.01.05 14:49) [21]

Страуструпа тебе рано



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.062 c
14-1105860340
Девушка
2005-01-16 10:25
2005.02.06
Вычисление ip-ка, браузера...


14-1105878259
begin...end
2005-01-16 15:24
2005.02.06
Проблема с Internet Explorer


14-1106051079
Sandman25
2005-01-18 15:24
2005.02.06
Ранги мужчин и политика


1-1106586391
Убитый Кодом
2005-01-24 20:06
2005.02.06
Один экземпляр приложения + передача параметров запуска форме


6-1101558159
XGarik
2004-11-27 15:22
2005.02.06
Уведомление о прочтении мыла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский