Большой Воронежский Форум
Страница 2 из 3
< 12 3 >
» Программирование>CodeBlocks
Part!zan 19:16 01.03.2011

Сообщение от SerOver:
Пишет, что не может найти файл

Нафиг он вообще не нужен. Все замечательно и без него будет работать. Все необходимые хедеры и так включены. Короче, начал бы ты с простого "Hello world", а потом бы уже и до русской локали дорос. А то у тебя щас в голове каша начнет образовываться: что-то непонятно написано, непонятно как работает и т. п. Создавай пустые проекты и вставляй туда свои примеры, не нужно тебе пока пользоваться тем, что визард студии наваяет. [Ответ]
Hopkroft 18:48 02.03.2011

Сообщение от Part!zan:
Нафиг он вообще не нужен. Все замечательно и без него будет работать. Все необходимые хедеры и так включены. Короче, начал бы ты с простого "Hello world", а потом бы уже и до русской локали дорос.

Иногда даже когда начинаешь с простеньких проектов, а они зачастую консольные, очень не хватает русского текста. когда выводишь пояснения к выводимому результату на латинице не всегда удобно, особенно если английского не знаешь.
Тем более если человек хочет со строками на кириллице поработать, о результате работы по иероглифам будет сложно ориентироваться. [Ответ]
Spectator 19:18 02.03.2011
По поводу stdafx.h, а то тут Part!zan понасоветует
Для того чтобы файлы компилировались без stdafx.h , нужно изменить настройки проекта (на картинке).
Тогда можно будет компилировать без stdafx.h
Но если речь идет не о проекте из 100 файлов, а об одном файле, то лучше просто прописать
#include "stdafx.h"
в начало файла и не забивать себе голову по этому поводу.

З.Ы. После изменения настроек проекта имеет смысл делать Rebuild (перестроить решение)
Изображения
Нажмите на изображение для увеличения
Название: test_rus2.PNG
Просмотров: 17
Размер:	32.3 Кб
ID:	1184301  
[Ответ]
Part!zan 20:50 02.03.2011

Сообщение от Hopkroft:
особенно если английского не знаешь

Программер, не знающий английского, это нонсенс. Кзнать английский можно только практикуясь в нем, написание текстов и комментариев на инглише - вполне неплохая практика. А топикстартер, как мне кажется, хочет в первую очередь научиться программить, а русская локаль лишь малая часть этого.
Spectator, я все правильно советую, ты просто завидуешь. ) Забивать человеку голову прекомпилед хедерами, когда он не может "хелло ворлд" осилить - глупо.
Я бы посоветовал вернуться на CodeBlocks (или другую IDE попроще, чем VS) и забить временно на русскую локаль. Не в ней счастье. [Ответ]
Spectator 11:59 03.03.2011

Сообщение от Part!zan:
Spectator, я все правильно советую, ты просто завидуешь. ) Забивать человеку голову прекомпилед хедерами, когда он не может "хелло ворлд" осилить - глупо.

Еще раз - без изменения настроек проекта программа в Visual Studio компилироваться без stdafx.h не будет. Ставить же из за одной галочки в проекте CodeBlocks - мягко скажем глупо))) [Ответ]
SerOver 20:23 03.03.2011
Подскажите книгу,
с которой нужно начинать изучать программирование на Си,
И вставлять примеры в Microsoft Visual C++ 2010 Express [Ответ]
Battle Coder 20:35 03.03.2011

Сообщение от SerOver:
с которой нужно начинать изучать программирование на Си,

Керниган, Ритчи - язык программирования Си.

Сообщение от SerOver:
И вставлять примеры в Microsoft Visual C++ 2010 Express

А вам именно это критично? Если начинать изучать, я бы порекомендовал всё-таки с mingw. (тот же code::blocks) [Ответ]
SerOver 21:06 03.03.2011
В книге Керниган, Ритчи - язык программирования Си
Приведенные примеры не сразу работают в Microsoft Visual C++
Пример
MAIN ()
PRINTF("HELLO, WORLD\N");

Работал только помле преобразования.
main()
{
printf ("HELLO, WORLD\n");
}

А следующие примерам и это не помогло.
При изменении заглавных букв на маленькие ,
Все равно выдает ошибки.
И в данный момент я не могу их исправить .
Не хватает ни знаний, ни опыта.
Поэтому я и задал вопрос, постом выше.
Хотелось бы для начала, найти книгу,
в которой, написанный пример сразу работал.

Или как сделать так, чтобы примеры в книге
Керниган, Ритчи - язык программирования Си
Заработали в Microsoft Visual C++

/* PRINT FAHRENHEIT-CELSIUS TABLE
FOR F = 0, 20, ..., 300 */
MAIN()
INT LOWER, UPPER, STEP;
FLOAT FAHR, CELSIUS;
LOWER = 0; /* LOWER LIMIT OF TEMPERATURE
TABLE */
UPPER =300; /* UPPER LIMIT */
STEP = 20; /* STEP SIZE */
FAHR = LOWER;
WHILE (FAHR <= UPPER)
CELSIUS = (5.0/9.0) * (FAHR -32.0);
PRINTF("%4.0F %6.1F\N", FAHR, CELSIUS);
FAHR = FAHR + STEP; [Ответ]
Part!zan 00:26 04.03.2011

Сообщение от Spectator:
без изменения настроек проекта программа в Visual Studio компилироваться без stdafx.h не будет

а я разве это где-то отрицал?

Сообщение от Spectator:
Ставить же из за одной галочки в проекте CodeBlocks - мягко скажем глупо

VS от CodeBlocks далеко не одной галкой отличается. Можно конечно IDE изучать параллельно с языком, но я бы не стал такого советовать.

Сообщение от SerOver:
как сделать так, чтобы примеры в книге
Керниган, Ритчи - язык программирования Си
Заработали в Microsoft Visual C++

Во первых, надо усвоить, что в C все идентификаторы являются регистрозаисимыми, поэтому писать имена функций и переменных нужно именно так, как они написаны в стандарте/хелпе. Практически все имена стандартных функций С пишутся маленькими буквами.
Кстати, по умолчанию VS компилирует исходники не как С, а как С++, а в С++ синтаксис немного отличается, и то, что годится для С, не всегда годится для С++. В настройках проекта это можно изменить.
А по поводу книжки - бери ту, автор которой сразу оговаривает, каким компилятором он пользуется, тогда с использованием примеров проблем не будет. [Ответ]
su -o 09:51 04.03.2011

Сообщение от SerOver:
Хотелось бы для начала, найти книгу,
в которой, написанный пример сразу работал.

В самом компиляторе языка обычно встроен хелп с простейшими примерами использования функций. Программирование это не использование какого либо компилятора, а построение алгоритма работы программы. [Ответ]
Spectator 12:38 04.03.2011

Сообщение от SerOver:
В книге Керниган, Ритчи - язык программирования Си
Приведенные примеры не сразу работают в Microsoft Visual C++
Пример
MAIN ()
PRINTF("HELLO, WORLD\N");

Работал только помле преобразования.
main()
{
printf ("HELLO, WORLD\n");
}

А следующие примерам и это не помогло.
При изменении заглавных букв на маленькие ,
Все равно выдает ошибки.
И в данный момент я не могу их исправить .
Не хватает ни знаний, ни опыта.
Поэтому я и задал вопрос, постом выше.
Хотелось бы для начала, найти книгу,
в которой, написанный пример сразу работал.

Или как сделать так, чтобы примеры в книге
Керниган, Ритчи - язык программирования Си
Заработали в Microsoft Visual C++

/* PRINT FAHRENHEIT-CELSIUS TABLE
FOR F = 0, 20, ..., 300 */
MAIN()
INT LOWER, UPPER, STEP;
FLOAT FAHR, CELSIUS;
LOWER = 0; /* LOWER LIMIT OF TEMPERATURE
TABLE */
UPPER =300; /* UPPER LIMIT */
STEP = 20; /* STEP SIZE */
FAHR = LOWER;
WHILE (FAHR <= UPPER)
CELSIUS = (5.0/9.0) * (FAHR -32.0);
PRINTF("%4.0F %6.1F\N", FAHR, CELSIUS);
FAHR = FAHR + STEP;

Кто - то случайно или от отсутствия понимания что делает перевел все исходники в верхний регистр. Компилироваться это ни одним компилятором не будет. Вот верный исходник:

Код:
/* * print fahrenheit-celsius table for f = 0, 20, * ..., 300 */
main(){
int
 lower, upper, step;
float
   fahr, celsius;
lower = 0;
/* lower limit of
 * temperature table */
upper = 300;
/* upper limit */
step = 20;
/* step size */
fahr = lower;
while (fahr <= upper) {
celsius = (5.0 / 9.0) * (fahr - 32.0);
printf("%4.0f %6.1f\n", fahr, celsius);
fahr = fahr + step;
}}
Тоже кривоватый, но компилироваться это должно. [Ответ]
SerOver 16:51 04.03.2011

Сообщение от Spectator:
Кто - то случайно или от отсутствия понимания что делает перевел все исходники в верхний регистр. Компилироваться это ни одним компилятором не будет...

Это я уже понял. Поэтому попрошу еще раз.

Подскажите книгу,
с которой нужно начинать изучать программирование на Си, И эти примеры
было можно сразу вставлять в Microsoft Visual C++ 2010 Express, без редактирования. [Ответ]
Spectator 19:12 04.03.2011

Сообщение от SerOver:
Это я уже понял. Поэтому попрошу еще раз.

Подскажите книгу,
с которой нужно начинать изучать программирование на Си, И эти примеры
было можно сразу вставлять в Microsoft Visual C++ 2010 Express, без редактирования.

Керниган, Ричи. Язык C http://lib.ru/CTOTOR/kernigan.txt_wi...-pictures.html
Бьерн Страуструп. Язык программирования С++ http://lib.ru/CPPHB/cpptut.txt
Чтобы "можно сразу вставлять" измените настройки, как я уже писал:

Сообщение от :
По поводу stdafx.h, а то тут Part!zan понасоветует
Для того чтобы файлы компилировались без stdafx.h , нужно изменить настройки проекта (на картинке).
Тогда можно будет компилировать без stdafx.h
Но если речь идет не о проекте из 100 файлов, а об одном файле, то лучше просто прописать
#include "stdafx.h"
в начало файла и не забивать себе голову по этому поводу.

З.Ы. После изменения настроек проекта имеет смысл делать Rebuild (перестроить решение)

ну и в зависимости от языка, то бишь примеры из Кернигана-Ричи - это Си, а примеры из Страуструпа - это C++, нужно в тех же настройках поменять язык соответствующим образом, картинку я уже приводил тоже.
В целом, примеры по С можно компилировать и не изменяя настроек, они будут запускаться в 99% случаев, только будет выдаваться много предупреждений (warning) при компиляции. На этом этапе на них можно забить. [Ответ]
Spectator 19:20 04.03.2011
Некоторые еще советуют "C++ базовый курс", Герберт Шилдт
Но я лично ее, уже изучив язык, полистал и как то не проникся.
Если вдруг не пойдет - можно и ее полистать, мало ли, на вкус и цвет фломастеры разные, хотя я особо лесных отзывов о ней мало слышал, но слышал.

Заполировать можно Гради Бучем
Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++
http://www.twirpx.com/file/272972/

После полного осмысления всех трех книг (Керниган-Ричи, Страуструп, Буч) вполне можно начинать считать себя программистом C/C++ [Ответ]
Spectator 19:26 04.03.2011
И еще - чтобы не было вопросов по поводу "вставлять и компилировать" - начните с понимания заголовочных файлов. Я имею в виду это

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

в самом начале ЛЮБОГО cpp файла. Если не поймете, то просто вставляйте, потом разберетесь.

простейший пример полностью компилирующейся программы:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
printf("Hello World!");
} [Ответ]
Part!zan 19:33 04.03.2011

Сообщение от Spectator:
Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++

о май гад... советовать новичку такие книги, это все равно, что предложить Демидовича тому, кто хочет в арифметике поупражняться.

SerOver, выбирай [Ответ]
SerOver 21:03 04.03.2011
Spectator, Может я плохо высказал свою просьбу. Но еще раз повторюсь.
Я просил про язык Си а не про Си++. Как я понимаю написание кода в этих языках немного, но отличается.
Как компилировать файл, Microsoft Visual C+ выбирает по расширению файла(как мне кажется)
*.с это Си а
*.срр это С++.
Ну так вот, все примеры я сохранял в *.с, для того чтобы работать с только с СИ.
Напишу зачем мне нужен только Си. Я хочу для начала понять простые и элементарные вещи , как пишется программа только на СИ. Как только, я разберусь в этом немного, я перейду на изучение программирования PIC контроллеров на СИ. Да и то, мне это нужно для написания простых программ на контроллерах. В дебри программирования лесть не хочу.
Ну вот в принципе и все, с целью на СИ.
Ну а так как, знакомых никого нет, кто знает программирование. Поэтому я и обратился сюда.

Part!zan, поиском я пользоваться умею, и довольно таки много скачал книг по программированию. Ну а так, как пока темный лес. Поэтому, я и обратился о помощи, ко всем к вам по книгам. Как мне кажется, что те, кто уже изучил, или изучает язык, более лучше ориентируется в книгах. И может конкретно посоветовать более доходчивый материал. Но как я понимаю, по этой переписке. На все” свои” грабли мне придется наступить самому, ни какие не пропустив.
Ну и в окончании. Просьба о книге остается в силе. [Ответ]
Part!zan 21:24 04.03.2011

Сообщение от SerOver:
Как мне кажется, что те, кто уже изучил, или изучает язык, более лучше ориентируется в книгах

Тебе вряд ли посоветуют что-то отличное от классики, типа Кернигана-Ричи. Потому что там изложены основы, которые, вообще говоря, годятся для любых компиляторов (с некоторыми поправками). Если ты хочешь в основном писать под пик контроллеры, то стартовать с вижуал студии будет не сильно разумно, имхо. Ты попутно изучишь массу совершенно ненужных вещей. Потому что программирование железа сильно отличается от программирования PC. Возможно, тебе будет больше полезна какая-нть книжка досовских времен, по Borland С, например. [Ответ]
Spectator 14:40 05.03.2011

Сообщение от SerOver:
Spectator, Может я плохо высказал свою просьбу. Но еще раз повторюсь.
Я просил про язык Си а не про Си++. Как я понимаю написание кода в этих языках немного, но отличается.

Керниган, Ричи. Язык C http://lib.ru/CTOTOR/kernigan.txt_wi...-pictures.html
Вы невнимательно читаете? Я же и посоветовал начать с С.

Сообщение от SerOver:
Как компилировать файл, Microsoft Visual C+ выбирает по расширению файла(как мне кажется)
*.с это Си а
*.срр это С++.
Ну так вот, все примеры я сохранял в *.с, для того чтобы работать с только с СИ.

Неправильно кажется, нужно настраивать проект. Как я уже как минимум два раза говорил)

Сообщение от SerOver:
Напишу зачем мне нужен только Си. Я хочу для начала понять простые и элементарные вещи , как пишется программа только на СИ. Как только, я разберусь в этом немного, я перейду на изучение программирования PIC контроллеров на СИ. Да и то, мне это нужно для написания простых программ на контроллерах. В дебри программирования лесть не хочу.
Ну вот в принципе и все, с целью на СИ.
Ну а так как, знакомых никого нет, кто знает программирование. Поэтому я и обратился сюда.

С этого и надо было начинать - тогда ТОЛЬКО К&R (Керниган, Ричи). [Ответ]
Spectator 15:07 05.03.2011
Ссылку криво скопировал, еще раз (он и в третий раз сходил за елочкой))) ) http://lib.ru/CTOTOR/kernigan.txt_wi...-pictures.html [Ответ]
aerin 18:15 05.03.2011

Сообщение от Spectator:
Неправильно кажется, нужно настраивать проект. Как я уже как минимум два раза говорил)

SerOver прав, ибо MSDN говорит: By default, CL assumes that files with the .c extension are C source files and files with the .cpp or the .cxx extension are C++ source files.
Т.е. по умолчанию зависит от расширения файла.

Вместо К&R я бы посоветовал почитать Шилдта, он менее академичен [Ответ]
Part!zan 19:53 05.03.2011

Сообщение от aerin:
ибо MSDN говорит

MSDN-то говорит, только студия по умолчанию создает проект с настройками компиляции файлов как С++, независимо от расширения. [Ответ]
aerin 20:35 05.03.2011
Создаю новый консольный проект Win32. Ставим галку напротив Empty project и снимаем напротив Precompiled header. Добавляем в проект файл test.cpp следующего содержания:
Код:
#include <stdio.h>

void main()
{
	for( int i = 0; i < 10; ++i )   	
		printf( "i = %d\n", i );
}
Компиляем
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

Удаляем test.cpp из проекта и добавляем test.c с таким же содержанием. Компиляем:
1>ClCompile:
1> test.c
1>c:\projects\test\test.c(5): error C2143: syntax error : missing ';' before 'type'
1>c:\projects\test\test.c(5): error C2143: syntax error : missing ';' before 'type'
1>c:\projects\test\test.c(5): error C2143: syntax error : missing ')' before 'type'
1>c:\projects\test\test.c(5): error C2143: syntax error : missing ';' before 'type'
1>c:\projects\test\test.c(5): error C2065: 'i' : undeclared identifier
1>c:\projects\test\test.c(5): warning C4552: '<' : operator has no effect; expected operator with side-effect
1>c:\projects\test\test.c(5): error C2059: syntax error : ')'
1>c:\projects\test\test.c(6): error C2065: 'i' : undeclared identifier
1>c:\projects\test\test.c(6): error C2146: syntax error : missing ';' before identifier 'printf'
1>c:\projects\test\test.c(6): error C2065: 'i' : undeclared identifier
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.07
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Смотрим командную строку CL: ключей /TC и /TP нет, т.е. все действительно по дефолту. [Ответ]
aerin 20:40 05.03.2011
Кстати, совсем забыл, раньше был классный компилятор с чистого С + IDE - LCC. Что с ним сейчас не знаю, гуглить лениво. [Ответ]
SerOver 21:48 05.03.2011
У Шилдт поиском нашел только по С++, а С не смог найти [Ответ]
Part!zan 22:26 05.03.2011
aerin, проделал аналогичные действия, в комстроке есть ключ /TP. VS2005 SP1 [Ответ]
aerin 22:38 05.03.2011
SerOver, навскидку http://www.ozon.ru/context/detail/id/966202/

Part!zan, я делал в VC2010. А что стоит в среде напротив Project->Properties->Configuration Properties->C/C++->Advanced->Compile As?
У меня Default. [Ответ]
Part!zan 13:33 06.03.2011
aerin, стоит, естественно, Compile as C++ Code (/TP). Конечно, возможно, что где-то настройки проекта по умолчанию меняются, а я настроил и забыл. [Ответ]
Spectator 15:58 06.03.2011

Сообщение от aerin:
SerOver прав, ибо MSDN говорит: By default, CL assumes that files with the .c extension are C source files and files with the .cpp or the .cxx extension are C++ source files.
Т.е. по умолчанию зависит от расширения файла.

Быть может, спорить не буду, но я всегда настраиваю проект самостоятельно, мало ли что там CL решит)))
Хотя я проверил - действительно так, я был неправ.

Сообщение от aerin:
Вместо К&R я бы посоветовал почитать Шилдта, он менее академичен

А я бы не советовал, так как он менее академичен))) Но - на вкус и цвет фломастеры разные, о чем я уже говорил) [Ответ]
Spectator 16:04 06.03.2011

Сообщение от SerOver:
У Шилдт поиском нашел только по С++, а С не смог найти

Тем не менее, она (книга) есть
http://www.williamspublishing.com/Bo...59-1102-5.html [Ответ]
Страница 2 из 3
< 12 3 >
Вверх