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

Мееедленно, но веерно - C++

Восстановить пароль Регистрация
 
Эстонец
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 3
02.02.2013, 11:13     Мееедленно, но веерно #1
В общем только сегодня начал пробовать писать, прошу сильно не пинать.. Решил, что лучше всего помогут разобраться видео уроки, нашёл парочку разных. Сам использую Codeblocks, т.к. посоветовали её... На видео ребята сначала пишут int main(){return 0;} , запускают и у них мелькает окошко, а у меня открывается и висит Press any...,
потом делаю дальше. Доходит до
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
 
int main()
{
    system("PAUSE >> VOID");
return 0;
}
и тут мне программа выдаёт ошибку (error: 'system' was not declared in this scope), хотя на видео у них всё работает...
Это из-за того, что я пишу в Codeblocks или я безнадёжен? :С
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
02.02.2013, 11:23     Мееедленно, но веерно #2
потому что литературу нужно читать и понимать что и для чего в коде используется.
если по простому, то чтобы вызвать какую-нибудь функцию, ее нужно внести в область спп файла.
это делается инклудами: #include <some_include_file>
в вашем случае нет нужного инклуда для вызова функции system.
набираем в яндексе C++ system, смотрим первую же ссылку:
http://www.cplusplus.com/reference/cstdlib/system/
и там в самом начале написно что эта функция объявлена в cstdlib
поэтому нужно добавить #include <cstdlib> в начало программы
Эстонец
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 3
02.02.2013, 11:26  [ТС]     Мееедленно, но веерно #3
Цитата Сообщение от DU Посмотреть сообщение
потому что литературу нужно читать и понимать что и для чего в коде используется.
если по простому, то чтобы вызвать какую-нибудь функцию, ее нужно внести в область спп файла.
это делается инклудами: #include <some_include_file>
в вашем случае нет нужного инклуда для вызова функции system.
набираем в яндексе C++ system, смотрим первую же ссылку:
http://www.cplusplus.com/reference/cstdlib/system/
и там в самом начале написно что эта функция объявлена в cstdlib
поэтому нужно добавить #include <cstdlib> в начало программы
Тоже об этом сначала подумал, но на 2 видео люди делают без этой библиотеки, только с iostream... Спасибо за ответ.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
02.02.2013, 11:30     Мееедленно, но веерно #4
такое бывает и это зависит от реализации стандартной библиотеки.
в их случае нужная библиотека включается косвенно, она инклудится где-то внутри iostream или внутри инклудов, которые она в себя включает. но это не обязательно везде так. чтобы компилировалось везде, нужно прописывать
те инклуды, в которых живут вызываемые функции. конкретно для этого примера iostream - это вообще неправильный инклуд. из него не используется ни одна функция. поэтому правильно стоило бы его написать так:
C++
1
2
3
4
5
6
7
#include <cstdlib>
 
 int main()
 {
 system("PAUSE >> VOID");
 return 0;
 }
Правило хорошего кода: влючать только то, что нужно, ничего лишнего не должно быть.
KristopherRobin
 Аватар для KristopherRobin
137 / 133 / 6
Регистрация: 11.09.2011
Сообщений: 407
02.02.2013, 11:32     Мееедленно, но веерно #5
Цитата Сообщение от Эстонец Посмотреть сообщение
Тоже об этом сначала подумал, но на 2 видео люди делают без этой библиотеки, только с iostream... Спасибо за ответ.
видимо там пишут в visual studio. в ней и правда system() только с iostream работает.
Эстонец
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 3
02.02.2013, 11:35  [ТС]     Мееедленно, но веерно #6
Цитата Сообщение от KristopherRobin Посмотреть сообщение
видимо там пишут в visual studio. в ней и правда system() только с iostream работает.
В первом вообще не понятно где пишут, там показывают только часть, где пишут, а во втором да, в вижуале...
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
02.02.2013, 12:11     Мееедленно, но веерно #7
Цитата Сообщение от Эстонец Посмотреть сообщение
Решил, что лучше всего помогут разобраться видео уроки
Это роковая ошибка, поверьте
Цитата Сообщение от Эстонец Посмотреть сообщение
Тоже об этом сначала подумал, но на 2 видео люди делают без этой библиотеки, только с iostream
И, как видите, это приводит к некоторым неудобствам ошибкам. Читайте книжки.
Yandex
Объявления
02.02.2013, 12:11     Мееедленно, но веерно
Ответ Создать тему
Опции темы

Текущее время: 06:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru