Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
#1

какая то ошибка в книге - C++

22.07.2009, 22:08. Просмотров 1684. Ответов 23
Метки нет (Все метки)

При компилировки кричит на

1.Error 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup MSVCRTD.lib proba

2.Error 2 fatal error LNK1120: 1 unresolved externals D:\Projects\proba\Debug\proba.exe 1 proba


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "windows.h"
 
int f(int x){
int y;
 
y=x+4;
if(y>10) {
    return(x-1);}
 
y *= 2;
return (x+y);
 
getchar();
 
}
в чем проблема???????я все делаю по книге
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
22.07.2009, 22:11     какая то ошибка в книге #2
в конец программы добавь
int main() { return 0; }
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
22.07.2009, 22:15  [ТС]     какая то ошибка в книге #3
Rififi, спасибо!Яеще для того чтобы хорошо понять хочу еще и принтф запихнуть чтобы увидеть чем равен Y.
Надо вызвать F из main
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
22.07.2009, 22:21     какая то ошибка в книге #4
примерно так:

#include <iostream>
int main()
{
int y;
std::cin >> y;
y = f(y);
std::cout << y << std::endl;
return 0;
}
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
22.07.2009, 22:23  [ТС]     какая то ошибка в книге #5
Цитата Сообщение от Rififi Посмотреть сообщение
std::cin >> y;
Цитата Сообщение от Rififi Посмотреть сообщение
std::cout << y << std::endl;
а почему так???почему ::
ps я еще этого не проходил
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
22.07.2009, 22:27  [ТС]     какая то ошибка в книге #6
Цитата Сообщение от Rififi Посмотреть сообщение
return 0;
а нельзя ли просто написать где объявляют функцию - void?чтобы retun не написать?

Добавлено через 48 секунд
Search.., читай первый пост
я с учебником так...там как написано я так и написал...я только учу

Добавлено через 1 минуту 18 секунд
Rififi, вот что пишет, короче открывается окно и там
Run-Time Check Failure #3 - The variable 'y' is being used without being initialized.
на это орет y=f(y);
Vourhey
Почетный модератор
6473 / 2248 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.07.2009, 22:30     какая то ошибка в книге #7
@lex, он тебе же английским по белому написал, что переменная у не инициализирована перед использованием. Так проинициализируй ее.
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
22.07.2009, 22:33  [ТС]     какая то ошибка в книге #8
Vourhey, только что я это сделал...я это знал но не знал если там есть y=f(y); то зачем еще и к нулю присвоить
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
22.07.2009, 22:47     какая то ошибка в книге #9
@lex,
а почему так???почему ::
ps я еще этого не проходил


потому что всё, что содержит в себе стандартная библиотека с++, находится в пространстве имён std, поэтому полная запись должна выглядеть так:
<имя_пространства> :: <идентификатор>

Ламерский путь состоит в том, чтобы в начала файла запихнуть строку using namespace std, тогда можно не писать std::, но ты хочешь быть ламером? (((:

а нельзя ли просто написать где объявляют функцию - void?чтобы retun не написать?
по стандарту - нельзя. нубиками - можно (:

вот что пишет, короче открывается окно и там
Run-Time Check Failure #3 - The variable 'y' is being used without being initialized.

это странно, потому что в этой строке
std::cin >> y;
как раз и происходит инициализация переменной.
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
22.07.2009, 22:55  [ТС]     какая то ошибка в книге #10
Rififi,аааа, я понял.....это :: для того что бы видет переменные в других функциях, да?

Добавлено через 4 минуты 27 секунд
Цитата Сообщение от Rififi Посмотреть сообщение
int y; std::cin >> y; y = f(y); std::cout << y << std::endl;
у меня пустота...ничего нету в консоли
а так как сделал я выводлился 8
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
22.07.2009, 22:58     какая то ошибка в книге #11
нет, это для того, чтобы видеть переменные (функции, типы из этого пространства имён)
например:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace my_std
{
   int i;
   void f();
}
 
// так нельзя
// i = 0;
// f();
 
// так - можно
my_std::i = 0;
my_std::f();
 
// так - тоже можно
using my_std::i;
using my_std::f;
i = 0;
f();
 
// а так - можно ламерам :)
using namespace my_std;
i = 0;
f();
Добавлено через 2 минуты 22 секунды
у меня пустота...ничего нету в консоли
а так как сделал я выводлился 8

я не смотрел что конкретно делает твоя функция, может так какой-то косяк.
проверить правильность работы ввода-вывода можно так
int f(int x) { return x * 10; }
если получил увеличенное в 10 раз число - косяк у тебя, не получил - косяк в компиляторе (:
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
22.07.2009, 23:03  [ТС]     какая то ошибка в книге #12
Rififi, я так и думал
но я не понимаю почему так только ламеры делают?...кстати using namespace my_std;
я в книжке и в хелп файле нашел......не думаю что автор книги ламер

Добавлено через 3 минуты 25 секунд
Цитата Сообщение от Rififi Посмотреть сообщение
my_std::f();
а у меня так не получается: пишет std is not class or member
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,327
22.07.2009, 23:04     какая то ошибка в книге #13
Что за книга-то? "Гюльчатай, открой личико-то!" А то, может, книга уже успела устареть....?
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
22.07.2009, 23:06  [ТС]     какая то ошибка в книге #14
CheshireCat, может, не новая 2 года....ну или же год
Vourhey
Почетный модератор
6473 / 2248 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.07.2009, 23:14     какая то ошибка в книге #15
На вопрос темы был дан ответ. Нет главной функции. Вы тут уже нэймспэйсы обсуждаете. По теме еще есть вопросы? Нет - закрываю.
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
22.07.2009, 23:26     какая то ошибка в книге #16
а нельзя ли просто написать где объявляют функцию - void?чтобы retun не написать?
Есть два варианта:
C
1
int main( void )
или
C
1
int main( int argc, char *argv[] )
kazak
3031 / 2352 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
23.07.2009, 10:24     какая то ошибка в книге #17
odip, в обоих вариантах придется писать return в конце функции.
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
23.07.2009, 10:41     какая то ошибка в книге #18
Цитата Сообщение от kazak Посмотреть сообщение
в обоих вариантах придется писать return в конце функции.
не придётся. компилятор сам добавит return, если явно не указан.
Цитата Сообщение от Rififi Посмотреть сообщение
это странно, потому что в этой строке
std::cin >> y;
как раз и происходит инициализация переменной.
если ввести не целочисленное значение, а символ, например f, то переменная y не будет инициализирована, т.к. cin установит флаг в failbit
Так что в принципе это очень даже полезное предупреждение компилятора.
kazak
3031 / 2352 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
23.07.2009, 12:25     какая то ошибка в книге #19
Цитата Сообщение от zim22 Посмотреть сообщение
не придётся. компилятор сам добавит return, если явно не указан.

Цитата:
компиляторы разные бывают.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2009, 12:41     какая то ошибка в книге
Еще ссылки по теме:

C++ Компилятор не дает написать main без int. Ошибка в книге, или в С так можно?
Ошибка при подключении файла Sales_item.h из примера в книге C++
Ошибка в книге? C++
Ошибка в книге extra qualification 'Critter::' on member 'operator=' C++
С++ ошибка в проге, но не могу понять какая ошибка( C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,327
23.07.2009, 12:41     какая то ошибка в книге #20
А что, пункт 3.6.1/5 Стандарта языка уже отменили? Не знал-с....
Ну, а если ты используешь бородато-древний компилятор "времен Очаковских и покоренья Крыма", то...... я думаю, ССЗБ.

Кстати, @lex, что за книга-то? Любопытно было бы все-таки узнать название.
Yandex
Объявления
23.07.2009, 12:41     какая то ошибка в книге
Закрытая тема Создать тему
Опции темы

Текущее время: 11:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru