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

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

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

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

22.07.2009, 22:08. Просмотров 1712. Ответов 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();
 
}
в чем проблема???????я все делаю по книге
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2009, 22:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос какая то ошибка в книге (C++):

Ошибка в книге? - C++
Я тут наткнулся на непонятную ситуацию. Кто-нибудь скажет, почему там так написано(фото ниже)? (или это опечатка?) И еще у меня вопрос, я...

Ошибка в книге Шилдта? - C++
Герберт Шилдт. C++ базовый курс. Третье издание. 2010 г. с. 269. Шилдт явно использует для доступа к массиву q диапазон индексов 1-100, в...

Ошибка в листинге в книге - C++
Читаю книгу Стивена Праты С++. Сперва было норм, но потом переводчик забухал. Нашел кучу ляпов, но здесь ниасилил. хэд #ifndef...

Сдвиг байтов, ошибка в книге? - C++
Прохожу тему по перемещению байтов. В книге написан код: j = 1 << j в первый цикл он работает нормально, после чего нужны бит...

указатели,вроде ошибка в книге - C++
снова ошибка в книге снова разочаровние...=\ вот код #include <windows.h> #include<iostream> using namespace std; int main(){ ...

Ошибка в книге или я что то не понимаю ? - C++
Задача по наследованию: Написать класс "Служащие" которые получают только процент от продаж и "Служащие" которые получают % и мин. З\п. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
22.07.2009, 22:11 #2
в конец программы добавь
int main() { return 0; }
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
22.07.2009, 22:15  [ТС] #3
Rififi, спасибо!Яеще для того чтобы хорошо понять хочу еще и принтф запихнуть чтобы увидеть чем равен Y.
Надо вызвать F из main
Rififi
2359 / 1054 / 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
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
22.07.2009, 22:23  [ТС] #5
Цитата Сообщение от Rififi Посмотреть сообщение
std::cin >> y;
Цитата Сообщение от Rififi Посмотреть сообщение
std::cout << y << std::endl;
а почему так???почему ::
ps я еще этого не проходил
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 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
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.07.2009, 22:30 #7
@lex, он тебе же английским по белому написал, что переменная у не инициализирована перед использованием. Так проинициализируй ее.
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
22.07.2009, 22:33  [ТС] #8
Vourhey, только что я это сделал...я это знал но не знал если там есть y=f(y); то зачем еще и к нулю присвоить
Rififi
2359 / 1054 / 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
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 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
2359 / 1054 / 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
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 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
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,368
22.07.2009, 23:04 #13
Что за книга-то? "Гюльчатай, открой личико-то!" А то, может, книга уже успела устареть....?
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
22.07.2009, 23:06  [ТС] #14
CheshireCat, может, не новая 2 года....ну или же год
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.07.2009, 23:14 #15
На вопрос темы был дан ответ. Нет главной функции. Вы тут уже нэймспэйсы обсуждаете. По теме еще есть вопросы? Нет - закрываю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2009, 23:14
Привет! Вот еще темы с ответами:

Ошибка в книге extra qualification 'Critter::' on member 'operator=' - C++
Есть книга - Майкл Доутсон &quot;Изучаем С++ через программирование игр&quot;. В книге есть код который не работает. Код тестировался на...

Ошибка при подключении файла Sales_item.h из примера в книге - C++
Делаю маленькие шажки по книге &quot;C++ базовый курс 2014&quot; Скачал файл &quot;Sales_item.h.&quot;, добавил в проект. После этого выдает ошибку...

С++ ошибка в проге, но не могу понять какая ошибка( - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;clocale&gt; using namespace std; int main (int args, const char * argv ) { ...

Компилятор не дает написать main без int. Ошибка в книге, или в С так можно? - C++
В книге И.Ш. Хабибуллина &quot;Программирование на языке высокого уровня C/C++&quot; во всех примерах пишут так: main() { } ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.07.2009, 23:14
Закрытая тема Создать тему
Опции темы

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