Первая программа на C++, типы данных и их размер
Что бы начать изучать C++ сначала создадим простое консольное приложение. Для этого запустите Visual C++. Выберите 'New' в меню 'File'. Проверте, что бы в диалоговой панеле 'New' была выбрана закладка 'Projects'. В списке типов проектов выберите 'Win32 Console Application'. Выберите каталог для проекта( лучше оставить по умолчанию ) и имя проекта, например, 'First' и нажмите 'OK'. У вас создатся 'First classes'. После этого выберите опять 'New', но с закладкой 'Files' и выберите 'C++ Source File'. Далее нажмите 'OK' и создастся файл 'First.cpp'. Всё, теперь можно писать программу. Но перед тем, как писать программу, давайте разберёмся какие типы данных существуют в C++.
В C++ существуют несколько часто используемых типов данных( не все ):
- Численные знаковые целые( int, short, char )
- Численные знаковые дробные( float, double, long( в С ), long double( в С ) )
- Численные без знаковые - все перечисленные выше типы с добавлением Unsigned
- Char так же может использоваться как символьный тип.
Теперь напишем программыу, которая будет выводить размер типов данных в байтах.
#include <iostream.h> void main(void) { cout << " (unsigned)int = " << sizeof(int) << endl; cout << " (unsigned)short = " << sizeof(short) << endl; cout << " (unsigned)char = " << sizeof(char) << endl; cout << " (unsigned)float = " << sizeof(float) << endl; cout << " (unsigned)double = " << sizeof(double) << endl; cout << " (unsigned)long = " << sizeof(long) << endl; cout << " (unsigned)long double = " << sizeof(long double) << endl; }
Оставить комментарий
Комментарии


#include <iostream>
using namespace std;
int main()
{
cout << "int = " << sizeof(int) << endl;
cout << "short = " << sizeof(short) << endl;
cout << "char = " << sizeof(char) << endl;
cout << "wchar_t = " << sizeof(wchar_t) << endl;
cout << "char16_t = " << sizeof(char16_t) << endl;
cout << "char32_t = " << sizeof(char32_t) << endl;
cout << "bool = " << sizeof(bool) << endl;
cout << "float = " << sizeof(float) << endl;
cout << "double = " << sizeof(double) << endl;
cout << "long = " << sizeof(long) << endl;
cout << "long double = " << sizeof(long double) << endl;
return 0;
}


1>------ Сборка начата: проект: ConsoleApplication1, Конфигурация: Debug Win32 ------
1>ConsoleApplication1.cpp
1>c:\users\sgolo\desktop\проекты\consoleapplication1\consoleapplication1\consoleapplication1.cpp(11): fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "pch.h"" в источник.
1>Сборка проекта "ConsoleApplication1.vcxproj" завершена с ошибкой.
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


#include <Windows.h>
// Подключаем пространство имен std
using namespace std;
int main()
{
// Подключаем русский
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
// Сама операция
cout << "Размер int " << sizeof(int) << " байт" << endl;
cout << "Размер short " << sizeof(short) << " байт" << endl;
cout << "Размер char " << sizeof(char) << " байт" << endl;
cout << "Размер float " << sizeof(float) << " байт" << endl;
cout << "Размер double " << sizeof(double) << " байт" << endl;
cout << "Размер long " << sizeof(long) << " байт" << endl;
cout << "Размер long double " << sizeof(long double) << " байт" << endl;
cout << "Размер long long " << sizeof(long long) << " байт" << endl;
system("pause");
return 0;
}


using namespace std;
int main() {
cout << " (unsigned)int = " << sizeof(int) << endl;
cout << " (unsigned)short = " << sizeof(short) << endl;
cout << " (unsigned)char = " << sizeof(char) << endl;
cout << " (unsigned)float = " << sizeof(float) << endl;
cout << " (unsigned)double = " << sizeof(double) << endl;
cout << " (unsigned)long = " << sizeof(long) << endl;
cout << " (unsigned)long double = " << sizeof(long double) << endl;
system("PAUSE");
return(0);
}


#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << endl;
cout << " Fuck you, world!" << endl;
cout << endl;
cout << " (unsigned)int = " << sizeof(int) << " Bytes" << endl;
cout << " (unsigned)short = " << sizeof(short)<< " Bytes" << endl;
cout << " (unsigned)char = " << sizeof(char)<< " Byte" << endl;
cout << " (unsigned)float = " << sizeof(float)<< " Bytes" << endl;
cout << " (unsigned)double = " << sizeof(double)<< " Bytes" << endl;
cout << " (unsigned)long = " << sizeof(long)<< " Bytes" << endl;
cout << " (unsigned)long double = " << sizeof(long double)<< " Bytes" << endl;
cin.get();
return 0;
}


пишет:
1>------ Построение начато: проект: 2, Конфигурация: Debug Win32 ------
1>LINK : error LNK2001: неразрешенный внешний символ "_mainCRTStartup"
1>A:\Users\Андрей\Documents\Visual Studio 2010\Projects\2\Debug\2.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


.\Debug\First.exe.intermediate.manifest : general error c1010070: Failed to load and parse the manifest. 5 C405BAO =09B8 C:070==K9 D09;.
Журнал построения был сохранен в "file://c:\Documents and Settings\MATH\My Documents\Visual Studio 2008\ProjectsFirst\First\First\Debug\BuildLog.htm"
First - ошибок 1, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
и так все время )))




Сейчас хочется чуть-чуть дополнить статью автора, чтобы меньше вопросов возникало у отважных самоучек. Если вы в программировании совсем новичок, то этот коммент для вас )
Последовательность:
Заходим в меню File -> New -> вкладка Projects -> элемент списка Win32 Console Application. В поле Project Name пишем First. Убедимся что выбрана опция Create New Workspace. Поле Location лучше оставить по умолчанию (C:\Program Files\Microsoft Visual Studio\MyProjects\First). Жамкаем ОК. Появится окно мастера с вопросом What kind of console application do you want to create? (Консольное приложение какого содержание вы хотите создать?) выбираем An empty project. Потом среда нас информирует об итогах работы мастера. Жамкаем ОК.
Опять же меню File -> New -> вкладка (или закладка) Files -> элемент списка Source File C++. Имя файла пишем так же First. В открывшемся редакторе пишем код:
iostream.h - заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++ подключается к нашей программе с помощью Директивы #include (подключить).
void - Тип, спецификатор типа. Указывает на то, что функция не возвращает значения.
main - наиглавнейшая функция программы. С нее начинается исполнение. И когда исполнение main завершается - завершается и программа.
void main (void) буквально означает, что функция не ожидает параметров и не возвращает значений.
Все эти основы можно прочесть в первых главах и примерах книги Бьёрна Страуструпа "Язык программирования С++".
А сейчас тупо копипастим (копировать - вставить) код приведенный в статье, жамкаем клавишу F7 (Build exe) и получаем откомпилированный исполняемый файл примерно тут C:\Program Files\Microsoft Visual Studio\MyProjects\first\Debug (зависит от того где создана папка с проектом).
Теперь о том как запустить. Заходим в меню Пуск -> Выполнить -> cmd
И пробираясь в искомую папку (cd.. - подняться на каталог выше, cd имя_папки - войти в каталог) запустить First (.exe писать необязательно).
Можно сделать проще: контекстное меню проводника -> создать ярлык. Пишем размещение объекта cmd, жмем "далее", вводим имя ярлыка (любое абсолютно), в свойствах ярлыка указываем рабочую папку "C:\Program Files\Microsoft Visual Studio\MyProjects\first\Debug" или ту, которую определили при создании проекта. Запускаем через ярлык cmd, вводим first и смотрим результат выполнения программы.


1>LINK : error LNK2001: unresolved external symbol _mainCRTStartup
1>D:\Dokumenten\SelbstLernMape\c++\Random VC\First\Debug\First.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
постоянно, при всех простейших кодах выдает такую ошибку
(я начинаюший до этого работал на DevC++ и на бейсике(совсем давно), решил пересесть на вижуал)
кто может посказать что делаю не так?


// c++.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << " (unsigned)int = " << sizeof(int) << endl;
cout << " (unsigned)short = " << sizeof(short) << endl;
cout << " (unsigned)char = " << sizeof(char) << endl;
cout << " (unsigned)float = " << sizeof(float) << endl;
cout << " (unsigned)double = " << sizeof(double) << endl;
cout << " (unsigned)long = " << sizeof(long) << endl;
cout << " (unsigned)long double = " << sizeof(long double) << endl;
return 0;
}
шаблон int _tmain(int argc, _TCHAR* argv[]) сгенерился визардом автоматом.


#include "stdafx.h"


#include <iostream>
using namespace std;
int main()
{
cout << " (unsigned)int = " << sizeof(int) << endl;
cout << " (unsigned)short = " << sizeof(short) << endl;
cout << " (unsigned)char = " << sizeof(char) << endl;
cout << " (unsigned)float = " << sizeof(float) << endl;
cout << " (unsigned)double = " << sizeof(double) << endl;
cout << " (unsigned)long = " << sizeof(long) << endl;
cout << " (unsigned)long double = " << sizeof(long double) << endl;
cin.get();
}


#include <iostream>
using namespace std;
void main()
{
cout << " (unsigned)int = " << sizeof(int) << endl;
cout << " (unsigned)short = " << sizeof(short) << endl;
cout << " (unsigned)char = " << sizeof(char) << endl;
cout << " (unsigned)float = " << sizeof(float) << endl;
cout << " (unsigned)double = " << sizeof(double) << endl;
cout << " (unsigned)long = " << sizeof(long) << endl;
cout << " (unsigned)long double = " << sizeof(long double) << endl;
cin.get();
}




мне потребовалось еще добавить такую строчку:
using namespace std;
в тело процедуры






Ну и какой после этого ты начинающий программист? ^_^

