Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/89: Рейтинг темы: голосов - 89, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 05.10.2015
Сообщений: 30

Как написать простейший пример "Hello World" на C++ в Visual Studio 2008?

05.10.2015, 22:57. Показов 19000. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Подскажите пожалуйста, как написать простейший Hello World на C++ в Visual Studio 2008?
Я создаю проект кансольного приложения win32, пишу в файле main.cpp следующий код:
C++
1
2
3
4
5
6
#include"stdafx.h"
#include<iostream.h>
void main() {
cout<<"Hello World!"<<;
return0;
}
Извиняюсь, может немного не так написал. Просто я в c++ пока чайник, до сели работал лишь с javascript и php.
Ну примерно так.
Но он не хочет компилироваться. Пишет, что файла iostream.h нету.
Подскажите кто-нибудь, как можно грамотно написать простой Hello World?
А от него я уже оттолкнусь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.10.2015, 22:57
Ответы с готовыми решениями:

Написать Простейший Графический редактор на Visual Studio 2008-2010 C++
Кто нибудь обьясните мне как работает этот код.

Как в MS Visual Studio создать простейший консольный Hello World?
Здравствуйте, я новичок, хочу освоить программирование в C++, скачал для этого учебник Страуструпа &quot;Язык программирования C++&quot;,...

Hello world в Visual Studio 2008 на C++
Доброго времени суток! На сколько я понимаю, книг по ВС 2008 в инете пока еще нет ... по крайней мере дедушка гугл не спас в этот раз. Но...

33
 Аватар для Sn1p3rOk
288 / 175 / 86
Регистрация: 19.04.2014
Сообщений: 1,095
07.10.2015, 21:52
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Mesteriis Посмотреть сообщение
И кстати если хочешь писать действительно стоящие вещи слезай с этой Visual Studio 2008 гадости!
Чем она вам не угодила ?
1
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
07.10.2015, 21:54
Sn1p3rOk, Да алергия у меня на мелкомягких(много крови попили в свое время))), говорил же ИМХО! А если серьезно не представляю возможно на ней написать хоть мало мальское кросплатформенное приложение
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
08.10.2015, 09:47
@bassman@, это специальный идентификатор, который указывает на то, что данный объект пренадлежит стандартному пространству имён (или, иначе говоря, пространству имён std). Про пространства имён (они же namespaces) прочитаете в книжке. Пока просто примите как факт, что можно писать тремя способами:
C++
1
2
3
4
5
6
7
8
9
// способ 1:
#include <iostream>
 
int main() 
{
    std::cout << "Hello World!\n";
    std::cin.get();
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
// способ 2:
#include <iostream>
 
using std::cout;
using std::cin;
 
int main() 
{
    cout << "Hello World!\n";
    cin.get();
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
// способ 3:
#include <iostream>
 
using namespace std;
 
int main() 
{
    cout << "Hello World!\n";
    cin.get();
    return 0;
}
cin.get() - это просто такая хреновина, которая ждёт, когда пользователь жмакнет любую клавишу. Тут я не буду грузить вас про класс iostream, ввод-вывод, объекты cout и cin, функции-члены и всё такое прочее. Всё это Вы потом сами в книжке прочитаете. Пока просто запомните - специальная функция, которая ждёт от пользователя ввода любого символа. Это чтобы окно программы не закрывалось и Вы могли посмотреть, чего там в консоли у Вас вывелось.

Добавлено через 6 минут
@bassman@, в плане книг, имхо, лучше Прату почитай.
2
 Аватар для @bassman@
5 / 7 / 1
Регистрация: 21.11.2012
Сообщений: 119
09.10.2015, 00:24
gru74ik, Во-первых есть вопросы по cin.get();
1. cin.get(); не работает. Работает _getch(); и то только при подключении #include <conio.h>.
2. Какая все-таки функция выполняет эту известную задачу, если использовать #include <iostream>.

Во-вторых есть вопросы по тому как программу запускать.
Пожалуйста, скажите в двух словах что такое:

1. F7 - построить решение;
2. CTRL+F7 - компилировать;
3. F5 - начать отладку;
4. CTRL+F5 - запуск без отладки;

Я понимаю, что всему этому есть объяснения, но мне понятней, если кто нибудь мне объяснит. Например, в какой момент происходит редактирование связей?
И вообще объясните мне, пожалуйста, что из этих 4-х пунктов надо использовать и когда. Я иногда нажимаю f5 иногда запускаю консольку путем ctrl+f5 (в этом случае всякие _getch(); и cin.get(); и тому подобные вещи меня не заботят). Иногда я нажимаю f7 - строю решение. Извините мою тупость.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
09.10.2015, 06:50
Цитата Сообщение от @bassman@ Посмотреть сообщение
cin.get(); не работает
Окно всё равно закрывается? Если да, то попробуй такой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
using namespace std;
 
int main() 
{
    cout << "Hello World!\n";
    cin.get();
    cin.get();
    return 0;
}
Добавлено через 10 минут
Цитата Сообщение от @bassman@ Посмотреть сообщение
Работает _getch();
_getch() может и работает, но это устаревшее (в случае с функцией getch()) и некроссплатформенное (в случае с функцией _getch()) решение:
Сonio.h (от англ. console input-output — консольный ввод-вывод) — заголовочный файл, используемый в старых компиляторах, работающих в операционных системах MS-DOS, для создания текстового интерфейса пользователя. Тем не менее, он не является частью языка программирования Си, стандартной библиотеки языка Си, ISO C или требуемой стандартом POSIX.
Этот заголовочный файл объявляет несколько библиотечных функций для работы с «консольным вводом и выводом» программы. Большинство компиляторов языка Си, предназначенных для DOS, Windows 3.x, Phar Lap, DOSX, OS/2 или Win32 имели этот файл и обеспечивали сопутствующие библиотечные функции в библиотеке Си по умолчанию. Большинство компиляторов языка Си, предназначенных для UNIX и Linux, не имеют этого файла и не обеспечивают сопутствующих библиотечных функций.
В общем, так делать не надо.

Цитата Сообщение от @bassman@ Посмотреть сообщение
и то только при подключении #include <conio.h>
Конечно, ибо функция _getch() объявлена в заголовочном файле (по английски их ещё называют header - заголовочник) conio.h

Добавлено через 2 минуты
Цитата Сообщение от @bassman@ Посмотреть сообщение
Какая все-таки функция выполняет эту известную задачу, если использовать #include <iostream>
cin.get();

Добавлено через 5 минут
Цитата Сообщение от @bassman@ Посмотреть сообщение
1. F7 - построить решение;
2. CTRL+F7 - компилировать;
3. F5 - начать отладку;
4. CTRL+F5 - запуск без отладки;
Запускай без отладки, с остальным пока не парься. Потом почитаешь про отладчик, как им пользоваться. А лучше, скачай себе в качестве среды разработки Code::Blocks, QtCreator или Visual Studio 2015.

Добавлено через 1 минуту
Цитата Сообщение от @bassman@ Посмотреть сообщение
Например, в какой момент происходит редактирование связей?
О каких связях речь?
1
32 / 32 / 28
Регистрация: 19.09.2013
Сообщений: 370
09.10.2015, 09:13
@bassman@, можно getchar вместо _getch. Что касается закрытия окна после cin.get, то тут поможет это:
C++
1
2
cin.ignore();
cin.get();
2
 Аватар для @bassman@
5 / 7 / 1
Регистрация: 21.11.2012
Сообщений: 119
09.10.2015, 13:25
Цитата Сообщение от Eugene13 Посмотреть сообщение
cin.ignore();
cin.get();
Да. В таком варианте заработало.

Добавлено через 1 час 30 минут
И еще консолька не понимает кириллицу.
0
32 / 32 / 28
Регистрация: 19.09.2013
Сообщений: 370
09.10.2015, 13:33
@bassman@, setlocale(LC_ALL, "Russian"). Вместо второго аргумента можно указать пустую строку (""), тогда будет использован язык системы.
1
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
09.10.2015, 13:46
@bassman@, вот говорил я выброс vs, в том де qt таких проблем нету) а так все правильно тебе сказали, есть еще вариант что бы оставить окно на экране это отдать команду собственно самой консоли
C++
1
System ("pause");
1
 Аватар для @bassman@
5 / 7 / 1
Регистрация: 21.11.2012
Сообщений: 119
09.10.2015, 15:18
Eugene13, setlocale(LC_ALL, "") - это где использовать? Я вставил эту строку в код и у меня все красной волнистой линией подчеркнуло.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
09.10.2015, 15:22
Цитата Сообщение от @bassman@ Посмотреть сообщение
И еще консолька не понимает кириллицу.
@bassman@, посмотри прикреплённые темы. Там большая часть твоих вопросов на пару месяцев вперёд расписана.
1
 Аватар для @bassman@
5 / 7 / 1
Регистрация: 21.11.2012
Сообщений: 119
09.10.2015, 19:21
gru74ik, Я блин, пересмотрел темы. Только больше запутался. Столько информации, и каша сплошная. IDE разные, задачи у людей разные.
setlocale(LC_ALL, "Russian") работает. Но вот какое дело.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
using namespace std;
int main()
{ 
    setlocale(LC_ALL, "Russian");
    cout << "Введите, пожалуйста Ваши имя и отчество\n";
    string first;
    string second;
    cin >>first >>second;
    string name = first + ' ' + second + '.'; 
    cout <<"Привет, " <<name<< '\n';
    
    cin.ignore();
    cin.get();
    return 0;
}
Работает так: Текст отображается на русском. Имя и Отчество тоже ввожу на русском. А вот при выводе значений этих строчных переменных (причем как отдельно так и после конкатенации) отображаются квакозябры.
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
09.10.2015, 19:36
@bassman@, не мучайся это проблема не кода а работы самой VS.
0
 Аватар для Sn1p3rOk
288 / 175 / 86
Регистрация: 19.04.2014
Сообщений: 1,095
09.10.2015, 19:53
@bassman@,
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
25
26
27
28
#include <iostream>
#include <Windows.h>
#include <string>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout << "Введите, пожалуйста Ваши имя и отчество" << endl;
 
    string first;
    string second;
    string name;
 
    getline(cin, first);
    getline(cin, second);
 
    name = first + ' ' + second + '.';
 
    cout << "Првет, " << name << endl;
 
    system("pause");
 
    return 0;
}
Добавлено через 3 минуты
@bassman@, поставьте в консоли Шрифт Consolas или Lucida Console если не стоит.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.10.2015, 19:53

Как написать программу в visual studio 2008
Я понятия не имею , как писать прогрумму . Мне просто дали карточку с заданием и там сказанно &quot; Написать прогрумму для расчета по...

Как открыть проект созданный в Visual Studio 2012 в Visual Studio 2008?
Нашел здесь же тему открытия Visual Studio 2012 в Visual Studio 2010 там написано так. Открыть файл проекта (.sln) с помощью блокнота и...

Visual Studio 2008 Professional или Visual Studio 2008 Team System?
Доброго времени суток всем!!! Предстал перед дилеммой!!!:wall: Чем отличаются(если их вообще можно сравнивать) Visual Studio 2008...

Написать программу. Задания нужно выполнять на языке Visual C++ в среде Microsoft Visual Studio 2008
Можете написать программу? Задание по номером 3.24 (2 рисунок).

Не работает hello world, простейший пример на flask
from flask import Flask, render_template import os app = Flask(__name__) @app.route('/') def root(): return...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru