Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/41: Рейтинг темы: голосов - 41, средняя оценка - 4.88
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
1

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

03.08.2014, 20:17. Показов 7481. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не видит команд сout, cin. Как подключить библиотеку?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2014, 20:17
Ответы с готовыми решениями:

Cout cin
Ребят, мы пишем cout << .... и cin >> .... Как называются эти операторы << и >>? И что они делают?

cin cout
Как выводить через cin cout а не через printf. А то получается ерунда #include <stdio.h>...

Cin cout
записать через сin cout printf ("a=", i); scanf ("%f", &a);

операторы cin, cout
Здравствуйте! Написала элементарную программу: #include <iostream> using namespace std;...

17
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
03.08.2014, 20:35 2
Показывай код и ошибки. В дефолтном проекте все уже прекрасно подключено, и можно использовать эти потоки...
0
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
03.08.2014, 20:39  [ТС] 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
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
03.08.2014, 20:41 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;
}
1
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
03.08.2014, 20:47  [ТС] 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;
}
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
03.08.2014, 20:55 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.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
03.08.2014, 21:03 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;
}
0
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
03.08.2014, 21:26  [ТС] 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;
}
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
04.08.2014, 00:01 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)
0
Заблокирован
04.08.2014, 00:40 10
maxm,

Не по теме:

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

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

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

Добавлено через 5 минут
Вот только мне интересно - такой человек сам не отличает в своей голове реальных знаний от фантазий, или намеренно вводит окружающих в заблуждение?
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
04.08.2014, 07:52 15
Цитата Сообщение от alsav22 Посмотреть сообщение
Цитата Сообщение от gru74ik Посмотреть сообщение
cout - это console output (консольный вывод)
Б.Страуструп "Программирование: принципы и практика использования С++.":
Имя cout произносится как “see-out”, но является аббревиатурой “character output stream” (“поток вывода символов”).
Признаю, был неправ. Благодарю за поправку.
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
04.08.2014, 08:29 16
P.S. Вспомнил, откуда я взял, что cout расшифровывается как console output.
Герберт Шилдт - Руководство для начинающих [A Beginner's Guide] (2-е, 2005), глава 1, стр. 38:
Слово cout представляет собой встроенный идентификатор (составленный из частей слов console output).
0
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
04.08.2014, 08:33 17
Цитата Сообщение от gru74ik Посмотреть сообщение
Герберт Шилдт
Его и в оригинале-то не все советуют читать

http://www.seebs.net/c/c_tcn4e.html
0
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 474
Записей в блоге: 4
04.08.2014, 16:28 18
cout и cin это не команды, а классы с перегруженными операторами.
0
04.08.2014, 16:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2014, 16:28
Помогаю со студенческими работами здесь

Добавить cin и cout
#include &lt;iostream&gt; using namespace std; struct Node { int numer; //информационный элемент...

Cin-Cout Не работает!!!
Подскажите пожайлуста как написать на Visual C++ простую программу hello world! Пишу #include...

Перегрузка cin/cout
Надо перегрузить операторы для некого класса. У меня есть два базовых класса, в одном 2 поля, в...

Ошибка на cout и cin
немогу понять в чем ошибка, есть код программы, вроде бы все правильно написано, но возможно я...

Ругается на cin cout
Где для char все ок. для int ругается. Что зрабиць? #include &lt;iostream.h&gt; #include &lt;iomanip.h&gt;...

перезагрузка cin, cout
Помогите корректно перезагрузить эти два оператора! #include &lt;iostream&gt; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru