Re: C++

svetlinka

Только начинаю учиться. Пишу такую простую прогу в Sourse files:
#include <stdio.h>
main(void)
{
int y;
y=2006;
printf("now year\n",y);
}
Выдает 2 ошибки.
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol 16
Debug/1.exe : fatal error LNK1120: 1 unresolved externals
Может это <stdio.h> не подключился?
Что это значит? Что не так?

Andbar

Действительно, две ошибки:
1)разделом ошибся...
2)видимо, надо было писать не main, а WinMain. Либо надо было с другими настройками проект создавать.

lvo2558

3) неинформативный заголовок

Andbar

о, реально... А еще - не указана среда и компилятор...
Хотя если опускаться до неуважения к собеседнику, то можно вообще указать всего одну ошибку (все остальные - производными будут)...

kindr-16

убей сибя ап стенку
или учи английский - в тексте ошибки всё чётко указано

svetlinka

unresolved external symbol= неразрешимый символ какой-то
ну и че? вопрос в том, что делать?

Andbar

всё чётко указано
для этого одного англиского маловато будет. Короче, я уже указал хинт, если по нему копать - можно написать компилирующуюся прогу. Или можно попытаться на другом компилере (проще поставить bc, если стоит цель именно C++ поботать с нуля - там таких проблем не будет, скорее всего)

Elina74

Да. Вначале разберись, что за проект ты создал и в какой среде. Судя по всему, тебе нужно консольное приложение.
Во-вторых, у тебя ошибка в принтфе, скорее всего ты имел в виду
printf("now year %d\n",y);

Andbar

printf("now year %d\n",y);
кстати, да... Сначала хотел сказать, но пока формулировал первые две ошибки, третью забыл напрочь.

durka82

К среде, в которой ты все это делаешь, должны быть примеры.
Попробуй для начала их поизучать и позапускать.
Или возьми какую-нибудь книжку по твоей среде, где по шагам написано, что надо делать (по идее это даже в помощи к среде должно быть).

mira-bella

Только начинаю учиться. Пишу такую простую прогу в Sourse files:
#include <stdio.h>
main(void)
{
int y;
y=2006;
printf("now year\n",y);
}
Выдает 2 ошибки.
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol 16
Debug/1.exe : fatal error LNK1120: 1 unresolved externals
Может это <stdio.h> не подключился?
Что это значит? Что не так?

глядя на этот код, вспоминаю очень далекое детство.
начни пожалуй с чтения книжек по языку программирования
То что у тебя - это не прога на C++, это прога на C с ошибками. Язык C не является подмножеством языка C++, вопреки типичному заблуждению новичков.
Чтобы твоя прога линковалась без ошибок, как тебе уже несколько раз сказали, надо создать проект типа "Console Application", и в него включить единственный модуль, содержащий твой код.
Для информации: MSVC воспринимает файлы *.c как модули на C, а файлы *.cpp как модули на C++.
Кроме того твоя функция main должна возвращать величину типа int, но не делает этого (компилятор должен был выдать warning). Кстати синтаксис объявления функции без указания возвращаемого типа (такие функции должны возвращать int по-умолчанию) давно устарел и считается очень плохим стилем (об этом тоже компилятор должен был выдать warning еще с выхода первого стандарта в далеком 1989 году.
И тебе справедливо указал насчет printf - читай описание этой функции, ты походу вообще не понимаешь как она работает (и как работает компилятор C). Поскольку твой первый параметр (строка формата) не содержит никаких спецификаторов формата, то ничего кроме содержимого строки формата напечатано не будет, и второй параметр "y" - лишний.

rosali

Если настолько не разбираешься в С, начни с какого нибудь нормального языка, Haskell, perl, Ява в конце концов. Начинать программировать с С ничего хорошего, мозги так же портит как basic.

ppplva

начни с какого нибудь нормального языка [...] perl
Еще бы shell предложил.

Elina74

начни с какого нибудь нормального языка, Haskell, perl, Ява в конце концов
Есть ли хоть один живой пример, который заботал перл или яву, не изучая перед этим си? Хочу посмотреть на этого человека. Интересны его ощущения.

Dasar

Java/C# - отлично учится без знания C.

Elina74

И без знания с++, естественно?

Dasar

конечно
c/c++, намного сложнее в освоении, чем Java/C#.

Dasar

Java/C# как минимум можно изучать методом проб и ошибок, в отличии, от c/c++

poi1981

>c/c++, намного сложнее в освоении, чем Java/C#
ну ясен пень, ты же с сей начал, потом плюсы добавил, а потом уже за диалекты взялся - вот они и получились проще в освоении

Dasar

так я не про себя - я про тех, с кем общался,
мне самому пофигу какой язык учить, я их и так штук тридцать знаю.
по окружающим могу твердо выделить, что средний человек (не программист):
который начинает обучение с C/C++ - больше к программированию не возвращается
начинающий с vb/java/c#/дельфи - пытается и дальше какие-то программки писать.
зы
я, вообще, начинал с basic-а(БК, Корвет, спектрум потом ассемблер (спектрум затем паскаль и только потом C++.

rosali

У меня есть знакомый из Новой Зеландии, они в университете учат сначала Haskell а только потом C. Я думаю в зарубежных университетах это обычная практика. Мое личное мнение - программируя на Haskell-е можно научиться программировать, программируя на С можно научиться программировать на С.

uncle17

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

valentin160962

Я начинал учиться прогать именно на Си, в 5 классе. Небольшой опыт "прогания" на бейсике не в счет, т.к. это было копирование чужого кода. Что я делаю неправильно?
Имхо, все зависит от того, по какому пособию (или у кого) ты учишься.

Dasar

> Что я делаю неправильно?
Поздравляю - ты крут.
К сожалению, большинство - не такое.
ps
да, кстати, ты уже про себя можешь сказать, что ты умеешь программировать?
и что для тебя это значит?

alexkravchuk

Я тоже начинал с C, в школе, в среде borland C++ 2.0-3.1 под дос. Не вижу ничего ненормального в C как в языке... IMHO, проблема несколько в другом, сейчас мало кого удовлетворит программа в текстовом режиме, нужно сразу в графическом что-то делать... А в Windows (да и X-Win тоже) слишком много нужно знать, чтобы программировать, обвязки слишком большие, для начинающего. Для начинающего, который хочет разобраться с тем, как работает программа, даже в коде
#include <stdio.h>
int main(void)
{
printf("Yes! Moya firstovaya proga! \n");
return 0;
}
будет много непонятного, смысл int main(void #include и т.п. А уж про WinMain, оконные функции и т.п. я и не вспоминаю... То есть проблема в том, что для начала здесь слишком много непонятных вещей, которые на первом этапе было бы полезно скрыть, пока мышление не подготовится.

Olyalyau

#include <stdio.h>

синтаксическая ошибка, отсутствует тип функции main должен быть int

main(void)
Оставить комментарий
Имя или ник:
Комментарий: