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

[Error] 'ostream' does not name a type - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
ШурикМартыненко
4 / 4 / 1
Регистрация: 27.03.2013
Сообщений: 110
12.01.2014, 16:28     [Error] 'ostream' does not name a type #1
C++
1
friend ostream& operator<<(ostream&, const string&);
- вот эта строка.
Весь код:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
            #include <iostream>
            #include <string.h>
            #include <fstream>
 
            class string {
               struct srep {
                 char* s;       // ????????? ?? ??????
                 int n;         // ??????? ????? ??????
                 srep() { n = 1; }
               };
               srep *p;
 
            public:
              string(const char *);   // string x = "abc"
              string();               // string x;
              string(const string &); // string x = string ...
              string& operator=(const char *);
              string& operator=(const string &);
              ~string();
              char& operator[](int i);
 
              friend ostream& operator<<(ostream&, const string&);
              friend istream& operator>>(istream&, string&);
 
              friend int operator==(const string &x, const char *s)
                { return strcmp(x.p->s,s) == 0; }
 
              friend int operator==(const string &x, const string &y)
                { return strcmp(x.p->s,y.p->s) == 0; }
 
              friend int operator!=(const string &x, const char *s)
                { return strcmp(x.p->s,s) != 0; }
 
              friend int operator!=(const string &x, const string &y)
                { return strcmp(x.p->s,y.p->s) != 0; }
           };
            string::string()
           {
             p = new srep;
             p->s = 0;
           }
 
           string::string(const string& x)
           {
             x.p->n++;
             p = x.p;
           }
 
           string::string(const char* s)
           {
             p = new srep;
             p->s = new char[ strlen(s)+1 ];
             strcpy(p->s, s);
           }
 
           string::~string()
           {
             if (--p->n == 0) {
                delete[]  p->s;
                delete p;
             }
           }
           string& string::operator=(const char* s)
          {
            if (p->n > 1) {  // ????????????? ?? ?????? ??????
                p->n--;
                p = new srep;
            }
            else    // ??????????? ?????? ?? ?????? ?????????
                delete[] p->s;
 
            p->s = new char[ strlen(s)+1 ];
            strcpy(p->s, s);
            return *this;
          }
 
          string& string::operator=(const string& x)
          {
            x.p->n++;  // ?????? ?? ?????? ``st = st''
            if (--p->n == 0) {
               delete[] p->s;
               delete p;
            }
            p = x.p;
            return *this;
          }
          ostream& operator<<(ostream& s, const string& x)
          {
             return s << x.p->s << " [" << x.p->n << "]\n";
          }
          istream& operator>>(istream& s, string& x)
          {
             char buf[256];
             s >> buf;   // ненадёжно, возможно переполнение buf
             x = buf;
             cout << "echo: " << x << '\n';
             return s;
          }
           void error(const char* p)
          {
            cerr << p << '\n';
            exit(1);
          }
 
        char& string::operator[](int i)
        {
         if (i<0 || strlen(p->s)<i) error("недопустимое значение индекса");
           return p->s[i];
        }
        int main()
         {
           string x[100];
           int n;
 
           cout << " здесь начало \n";
 
           for ( n = 0; cin>>x[n]; n++) {
               if (n==100) {
                  error("слишком много слов");
                  return 99;
               }
               string y;
               cout << (y = x[n]);
               if (y == "done") break;
 
           }
           cout << "теперь мы идем по словам в обратном порядке \n";
           for (int i=n-1; 0<=i; i--) cout << x[i];
           return 0;
         }
Ну, так же там есть подобные ошибки.
Лог:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
22  22  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Error] 'ostream' does not name a type
23  22  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Error] 'istream' does not name a type
87  11  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Error] 'ostream' does not name a type
91  11  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Error] 'istream' does not name a type
D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   In function 'void error(const char*)':
101 13  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Error] 'cerr' was not declared in this scope
101 13  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Note] suggested alternative:
1   0   D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   In file included from main.cpp
63  18  c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.7.1\include\c++\iostream    [Note] 'std::cerr'
102 19  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Error] 'exit' was not declared in this scope
D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   In function 'int main()':
115 12  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Error] 'cout' was not declared in this scope
115 12  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Note] suggested alternative:
1   0   D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   In file included from main.cpp
62  18  c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.7.1\include\c++\iostream    [Note] 'std::cout'
117 25  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Error] 'cin' was not declared in this scope
117 25  D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   [Note] suggested alternative:
1   0   D:\Проекты с++\ООП\ЛБ 3, В 8\main.cpp   In file included from main.cpp
61  18  c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.7.1\include\c++\iostream    [Note] 'std::cin'
Подскажите, пожалуйста, где, что, как?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2014, 16:28     [Error] 'ostream' does not name a type
Посмотрите здесь:

C++ Error: Invalid use of incomplete type
C++ friend ostream &operator<<(ostream &stream, MyClass o);
error: cannot delete expression of type 'char' C++
E2094 'operator<<' not implemented in type 'ostream' for arguments of type 'Binary' C++
Error C2109: subscript requires array or pointer type C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xoror
 Аватар для xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
12.01.2014, 16:32     [Error] 'ostream' does not name a type #2
C++
1
using namespace std;
не хватает
AnDrew_LP
160 / 162 / 9
Регистрация: 29.05.2010
Сообщений: 435
12.01.2014, 16:33     [Error] 'ostream' does not name a type #3
C++
1
using namespace std;
Либо писать явно название пространства имен std::ostream, std::cout и т.д.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11824 / 6803 / 769
Регистрация: 27.09.2012
Сообщений: 16,871
Записей в блоге: 2
Завершенные тесты: 1
12.01.2014, 16:33     [Error] 'ostream' does not name a type #4
std::ostream
Yandex
Объявления
12.01.2014, 16:33     [Error] 'ostream' does not name a type
Ответ Создать тему
Опции темы

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