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

DevC не видит команд cout, cin - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
maxm
 Аватар для maxm
33 / 20 / 6
Регистрация: 17.07.2014
Сообщений: 351
03.08.2014, 20:17     DevC не видит команд cout, cin #1
Не видит команд сout, cin. Как подключить библиотеку?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2014, 20:17     DevC не видит команд cout, cin
Посмотрите здесь:

Не работают cin и cout C++
C++ НЕ находит cin cout
cin cout C++
Cin и cout не компилируется C++
C++ операторы cin, cout
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volvo
Супер-модератор
 Аватар для volvo
21827 / 14190 / 3956
Регистрация: 22.10.2011
Сообщений: 25,074
Записей в блоге: 2
03.08.2014, 20:35     DevC не видит команд cout, cin #2
Показывай код и ошибки. В дефолтном проекте все уже прекрасно подключено, и можно использовать эти потоки...
maxm
 Аватар для maxm
33 / 20 / 6
Регистрация: 17.07.2014
Сообщений: 351
03.08.2014, 20:39  [ТС]     DevC не видит команд cout, cin #3
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <stdio.h>
 
 
int main(int argc, char** argv) {
    
 
cout << "Enter name";
    
    return 0;
}
Не видик команды cout, выдает снизу на панели 'cout' was not declared in this scope
volvo
Супер-модератор
 Аватар для volvo
21827 / 14190 / 3956
Регистрация: 22.10.2011
Сообщений: 25,074
Записей в блоге: 2
03.08.2014, 20:41     DevC не видит команд cout, cin #4
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
using namespace std; // эта строка тоже есть в дефолтном проекте, зачем ты ее выкинул?
 
int main(int argc, char** argv) {
    
 
cout << "Enter name";
    
    return 0;
}
maxm
 Аватар для maxm
33 / 20 / 6
Регистрация: 17.07.2014
Сообщений: 351
03.08.2014, 20:47  [ТС]     DevC не видит команд cout, cin #5
Цитата Сообщение от UI Посмотреть сообщение
// эта строка тоже есть в дефолтном проекте, зачем ты ее выкинул?
за умолчанием ее не выдает, вот какая картина после создания нового проэкта:
C++
1
2
3
4
5
6
7
#include <iostream>
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
int main(int argc, char** argv) {
    return 0;
}
gru74ik
Модератор
 Аватар для gru74ik
3122 / 1348 / 167
Регистрация: 20.02.2013
Сообщений: 3,866
Записей в блоге: 18
03.08.2014, 20:55     DevC не видит команд cout, cin #6
В общем, тебе надо писать либо так:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "Hello world!" << endl;
    return 0;
}
либо так:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
using std::cout;
using std::endl;
 
int main()
{
    cout << "Hello world!" << endl;
    return 0;
}
либо так:
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
    std::cout << "Hello world!" << std::endl;
    return 0;
}
И всё, что имеет отношение к стандартной библиотеке, прописывать так же:

C++
1
2
3
std::cin
std::string
std::vector
и т.п.

Либо, как было указано выше, с помощью директивы using.
volvo
Супер-модератор
 Аватар для volvo
21827 / 14190 / 3956
Регистрация: 22.10.2011
Сообщений: 25,074
Записей в блоге: 2
03.08.2014, 21:03     DevC не видит команд cout, cin #7
Цитата Сообщение от maxm Посмотреть сообщение
вот какая картина после создания нового проэкта:
Мне сказки-то не надо рассказывать. Видео записать о создании нового С++ проекта в DevC++? Создается вот такой файл:
C++
1
2
3
4
5
6
7
8
9
10
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    system("PAUSE");
    return EXIT_SUCCESS;
}
maxm
 Аватар для maxm
33 / 20 / 6
Регистрация: 17.07.2014
Сообщений: 351
03.08.2014, 21:26  [ТС]     DevC не видит команд cout, cin #8
Видимо, версия лагучая, потому что код прожекта на с++ стандардтный выглядит так:
C++
1
2
3
4
5
6
7
#include <iostream>
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
int main(int argc, char** argv) {
    return 0;
}
Если там фишку нажать "Создать хелло ворлд", то они выдают так:
C++
1
2
3
4
5
6
#include <iostream>
 
int main(int argc, char** argv) {
    std::cout << "Hello world!\n";
    return 0;
}
gru74ik
Модератор
 Аватар для gru74ik
3122 / 1348 / 167
Регистрация: 20.02.2013
Сообщений: 3,866
Записей в блоге: 18
04.08.2014, 00:01     DevC не видит команд cout, cin #9
cout - это console output (консольный вывод), оператор работы с стандартным потоком вывода (в качестве такового чаще всего выступает монитор). Для того чтобы он работал, надо указать, что это тот самый cout, который описан в стандартной библиотеке как объект класса ostream. Для этого ты используешь так называемую операцию разрешения контекста (те самые идущие подряд два двоеточия) и три буквочки std. Либо директиву using.
Вот тут так и сделано:
C++
1
2
3
4
5
6
#include <iostream>
 
int main(int argc, char** argv) {
    std::cout << "Hello world!\n";
    return 0;
}
Можешь сам посмотреть операция разрешения контекста C++ и ещё директива using C++.

Добавлено через 32 минуты
Или вот у Страуструпа объяснение:
Кликните здесь для просмотра всего текста
Цитата Сообщение от Бьярне Страуструп
4.9.4. Область видимости
Объявление вводит имя в область видимости (scope); это значит, что имя можно
использовать лишь в ограниченной части программы. Для имени, объявленного
в теле функции (его часто называют локальным), область видимости простирается
от точки объявления до конца содержащего это объявление блока. Блоком
называется фрагмент кода, ограниченного с двух сторон фигурными скобками
(открывающей и закрывающей).
Имя называется глобальным, если оно объявлено вне функций, классов
(глава 10) и пространств имен (§8.2). Область видимости глобального имени
простирается от точки объявления до конца файла, содержащего это объявление.
Объявление имени внутри блока скрывает совпадающее имя, объявленное во внешнем
объемлющем блоке, или глобальное имя. Таким образом, внутри блока имя можно
переопределить с тем, чтобы оно ссылалось на новую сущность. По выходе из блока
имя восстанавливает свой прежний смысл. Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int х;          // глобальная переменная х 
void f() 
{ 
    int х;      // локальная х скрывает глобальную х 
    х = 1;      // присваивание локальной х 
    { 
        int х;  // скрывает первую локальную х 
        х = 2;  // присваивание второй локальной х 
    } 
    х = 3;      // присваивание первой локальной х 
} 
int* р = &х;    // взять адрес глобальной х
Сокрытие имен неизбежно в больших программах. В то же время,
программист может и не заметить, что какое-то имя оказалось скрыто. Из-за того, что
такие ошибки редки и нерегулярны, их трудно обнаруживать. Следовательно,
сокрытие имен желательно минимизировать. Хотите проблем — используйте i или х
в качестве глобальных имен, или в качестве локальных в функциях большого
размера.
Доступ к скрытому глобальному имени осуществляется с помощью операции ::
(операция разрешения области видимости — scope resolution operator). Например:
C++
1
2
3
4
5
6
7
8
int x; 
void f2() 
{ 
    int x=l; // скрывает глобальную х 
    ::x=2;   // присваивание глобальной х 
    x=2;     // присваивание локальной х
    //...
}
He существует способа обращения к скрытому локальному имени.
Область видимости имени начинается в точке объявления, точнее, сразу после
декларатора, но перед инициализирующим выражением. Из этого следует, что имя
можно использовать в качестве инициализатора самого себя. Например:
C++
1
2
3
4
5
6
int x; 
void f3() 
{ 
    int x = х;  // извращение: инициализируем х ее собственным 
                // (непроинициализированным) значением 
}
Это не запрещено, просто глупо. Хороший компилятор предупредит о попытке
чтения неинициализированной переменной (§5.9[9]).
В принципе, в блоке можно обращаться с помощью одного и того же имени
к разным переменным, даже не используя операции ::. Вот пример на эту тему:
C++
1
2
3
4
5
6
7
int x=11; 
void f4() 
{ 
    int у = x;  // используется глобальная х: у=11 
    int x = 22; 
    у = x;      // используется локальная х: у=22 
}
Считается, что имена аргументов функции объявлены в самом внешнем блоке,
относящемся к функции, так что следующий пример
C++
1
2
3
4
void f5(int x) 
{ 
    int x; // error (ошибка) 
}
компилируется с ошибкой, ибо имя х дважды определено в одной и той же
области видимости. Отнесение такой ситуации к ошибочным позволяет избегать
коварных ошибок.


P.S. Ещё можешь у него же ознакомиться с параграфом Пространства имён (§ 8.2 ).

Добавлено через 7 минут
P.P.S. Хотя, на мой взгляд, у Праты гораздо понятнее объяснено (см. Стивен Прата "Язык программирования С++. Лекции и упражнения", 2013, 6-е издание, глава 2, стр. 57)
Сто500
Заблокирован
04.08.2014, 00:40     DevC не видит команд cout, cin #10
maxm,

Не по теме:

Видимо, версия лагучая
Dev-CPP вообще очень глючная вещь. Это вы не пробовали под WinAPI/COM/OLE в ней писать. С ее линуксовским компилятором она очень плохо под винду годится.

Лучше возьмите Visual C++ Express 2008 или 2010, лучше 8, лагов меньше.

alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.08.2014, 01:22     DevC не видит команд cout, cin #11
Цитата Сообщение от gru74ik Посмотреть сообщение
cout - это console output (консольный вывод)
Б.Страуструп "Программирование: принципы и практика использования С++."
Миниатюры
DevC   не видит команд cout, cin  
Иванов_Андрей
 Аватар для Иванов_Андрей
10 / 10 / 0
Регистрация: 23.07.2014
Сообщений: 52
04.08.2014, 02:36     DevC не видит команд cout, cin #12
Цитата Сообщение от Сто500 Посмотреть сообщение
Лучше возьмите Visual C++ Express 2008 или 2010
Лучше тогда в блокноте подобные вещи писать и компилировать ручками. Для запоминания синтаксиса - само-то. Ну и разобраться можно что к чему.
Сто500
Заблокирован
04.08.2014, 02:45     DevC не видит команд cout, cin #13
Лучше тогда в блокноте подобные вещи писать и компилировать ручками.
Смысл?
Если компилятор все равно тот же, что и в Dev-Cpp.
А вот если это cl.exe из Visual Studio, то блокнот, Notepad++ или вообще что-то свое может быть удобно, так как меньше лишних функций и стало быть нагрузка на комп.
Этот же cl.exe и приложения CLR (.NET) тоже компилирует.
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,686
04.08.2014, 06:20     DevC не видит команд cout, cin #14
Цитата Сообщение от alsav22 Посмотреть сообщение
Цитата Сообщение от gru74ik Посмотреть сообщение
cout - это console output (консольный вывод)
Б.Страуструп "Программирование: принципы и практика использования С++."
Миниатюры
Честно говоря, меня поражает манера некоторых товарищей излагать свои фантазии, догадки и предположения с таким видом, будто они это в книжке вычитали, при этом еще и поругивая авторов непрочитанных ими книжек.

Добавлено через 5 минут
Вот только мне интересно - такой человек сам не отличает в своей голове реальных знаний от фантазий, или намеренно вводит окружающих в заблуждение?
gru74ik
Модератор
 Аватар для gru74ik
3122 / 1348 / 167
Регистрация: 20.02.2013
Сообщений: 3,866
Записей в блоге: 18
04.08.2014, 07:52     DevC не видит команд cout, cin #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Цитата Сообщение от gru74ik Посмотреть сообщение
cout - это console output (консольный вывод)
Б.Страуструп "Программирование: принципы и практика использования С++.":
Имя cout произносится как “see-out”, но является аббревиатурой “character output stream” (“поток вывода символов”).
Признаю, был неправ. Благодарю за поправку.
gru74ik
Модератор
 Аватар для gru74ik
3122 / 1348 / 167
Регистрация: 20.02.2013
Сообщений: 3,866
Записей в блоге: 18
04.08.2014, 08:29     DevC не видит команд cout, cin #16
P.S. Вспомнил, откуда я взял, что cout расшифровывается как console output.
Герберт Шилдт - Руководство для начинающих [A Beginner's Guide] (2-е, 2005), глава 1, стр. 38:
Слово cout представляет собой встроенный идентификатор (составленный из частей слов console output).
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
04.08.2014, 08:33     DevC не видит команд cout, cin #17
Цитата Сообщение от gru74ik Посмотреть сообщение
Герберт Шилдт
Его и в оригинале-то не все советуют читать

http://www.seebs.net/c/c_tcn4e.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2014, 16:28     DevC не видит команд cout, cin
Еще ссылки по теме:

C++ Ошибка на cout и cin
C++ Cin cout
C++ Добавить cin и cout

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

Или воспользуйтесь поиском по форуму:
Alexandr_1982
Нарушитель
175 / 71 / 17
Регистрация: 04.11.2013
Сообщений: 383
Записей в блоге: 4
04.08.2014, 16:28     DevC не видит команд cout, cin #18
cout и cin это не команды, а классы с перегруженными операторами.
Yandex
Объявления
04.08.2014, 16:28     DevC не видит команд cout, cin
Ответ Создать тему
Опции темы

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