Cout does not name a type error

Errors C++

Contents

test local function definitions are illegal C++

Error C2660 : function does not take 3 arguments

Error LNK2019 unresolved external symbol

E0042 operand types are incompatible ( char and const char * )

E0025 quoted string should contain at least one character

error: ‘cout’ in namespace ‘std’ does not name a type

undefined reference to `std::cout’

Если начинается на C, то это ошибка компиллятора.

Если на L, то линкера.

test local function definitions are illegal C++

Появляется если Вы случайно определили функцию не перед main а внутри main.

Error C2660 : function does not take 3 arguments

Компилятор ждёт, что у функции будет другое количество аргументов.

Появляется, например, если Вы не подключили нужную функцию, но существует
функция перегрузка с другим количеством аргументов. Копилятор не находит
нужную функцию, находит ту у которой такое же название, пытается использовать,
но количество аргументов неправильно.

Error LNK2019 unresolved external symbol

Линкер видит, что вызывается функция, которая нигде не задана.

E0042 operand types are incompatible ( char and const char * )

Появляется обычно при сравнении char с символом в двойных кавычках.

Нужно заменить двойные кавычки одинарными

char s = line[0];

if (s == 'T') {
std::cout << "TopBicycle.ru" << std::endl;
}

E0025 quoted string should contain at least one character

Обычно появляется когда вы пытаетесь создать пустую строку но делаете это с одинарными кавычками.

Нужно заменить одинарные кавычки двойными.

empty_line = "";

‘cout’ in namespace ‘std’ does not name a type

error: ‘cout’ in namespace ‘std’ does not name a type

Скорее всего вы пытаетесь сделать вывод без функции

std::cout << «Hello»;

С++ на это ругается, поэтому нужно завернуть вывод в функцию

void log() {
std::cout << «Hello»;
}

undefined reference to `std::cout’

undefined reference to `std::cout’

Означает, что скорее всего вам нужен g++ а не gcc

arkadyushka

0 / 0 / 0

Регистрация: 23.11.2020

Сообщений: 5

1

30.11.2020, 08:03. Показов 3703. Ответов 2

Метки c++ (Все метки)


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main () {
   int s=0,maxx=0;
   for(int i=2095; i<=19402; i++)
        if ((i%1==0) and (i%i==0) and ((i/10000)>(i%10))){
            if(maxx%100==21){
                 maxx=i;
            }
            s+=1;
        }
}
cout<<s<<" "<<maxx;
return 0;

Выдает ошибку ‘cout’ does not name a type
cout<<s<<» «<<maxx;
^~~~
Как исправить?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Модератор

Эксперт С++

12640 / 10134 / 6102

Регистрация: 18.12.2011

Сообщений: 27,170

30.11.2020, 08:38

2

arkadyushka, всегда форматируйте код, тогда не будет таких ошибок.
Я отформатировал его за Вас. Теперь, я думаю, Вам все понятно (в 12 строке скобка заканчивает функцию main)!

И, кстати,

Цитата
Сообщение от arkadyushka
Посмотреть сообщение

(i%1==0) and (i%i==0)

i%1 всегда дает ноль (кроме i равного нулю)
а i%i — всегда единица.
Зачем такое надо было писать?

Напишите, какую задачу Вы решаете.



0



610 / 415 / 151

Регистрация: 11.01.2019

Сообщений: 1,746

30.11.2020, 11:24

3

Строчку 12 перенесите в конец.



0



  • Forum
  • Beginners
  • Error: ‘cout’ does not name a type

Error: ‘cout’ does not name a type

On line 50 I am getting an error that reads «error: ‘cout’ does not name a type. When I Google this issue I see multiple people saying to include the namespace std; which I have. Any other suggestions as to why I am getting this error?

#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;

void getUserInput(int &num);
void whileNum(int &num, int &smallest, int &largest);

//initiate main
int main()
{//open main()

//establish integers
int num=0;
int smallest, largest;

getUserInput(num);

whileNum(num, smallest, largest);

system(«Pause»);
return 0;
}//close main()

//initiate called module getUserInput
void getUserInput(int &num)
{ //open getUserInput()
cout << «Enter a number of -99 to QUIT» << endl;
cin>> num;
} //close getUserInput()

void whileNum(int &num, int &smallest, int &largest)

{
while (num != -99);
{//open while()

largest=num;
smallest=num;
//if statements for maximum and minimum
if (num>largest)
largest=num;
if (num<smallest)
smallest=num;
}
} //close while()

//display largest and smallest values
cout << «Largest: » << largest << » Smallest: » << smallest << endl;

}//close while()

num=-99;
cout <<«Good-bye» << endl;

}

Please add code tags around the code in your post. Without them we can’t easily tell what line is line 50.

Thank you jib for your help. I just needed to make sure to take out any unneeded {}

http://www.cplusplus.com/forum/beginner/193392/

Use code tags and avoid wasting effort by double posting. Thank you for your cooperation.

Topic archived. No new replies allowed.

Я пытаюсь использовать более короткий синтаксис и избегать использования std:: везде, поэтому я начал использовать новый синтаксис псевдонимов. В некоторых примерах я видел людей, использующих это таким образом:

using json = nlohmann::json;

и попробовал это с std::, но с кодом ниже:

#include <iostream>

using cout = std::cout;

int main()
{
cout << "Sometext";
return 0;
}

но я получаю ошибку 'cout' in namespace 'std' does not name a type, Я знаю, что могу использовать

using std::cout;

но почему using cout = std::cout; не работает?

РЕДАКТИРОВАТЬ:

Всем, кто проголосовал за закрытие этого вопроса: я опубликовал его, потому что не смог найти решение, написав сообщение об ошибке. Да, вопрос, упомянутый как вопрос, который имеет решение для моей проблемы, описывает, что происходит, но когда кто-то получает такую ​​ошибку, он не может легко найти решение. Я просто не понял, что cout это объект. Я читал некоторые подобные вопросы, но все еще не знал, что происходит.

3

Решение

using cout = std::cout; относится к объявление псевдонима типа синтаксис. Это похоже на typedef; так что вы пытаетесь объявить тип с именем cout это относится к ранее определенному типу std::cout, Но std::cout это не имя типа, это объект с типом std::ostream.

Как говорится в сообщении об ошибке, он просто пытается сказать вам, что std::cout не относится к имени типа.

16

Другие решения

Других решений пока нет …

Я изучал книгу Адама Дроздека «Структуры данных и алгоритмы в C ++», ну, я набрал код на странице 15 в моем vim и скомпилировал его в терминале моего Ubuntu 11.10.

#include <iostream>
#include <cstring>
using namespace std;

struct Node{
    char *name;
    int age;
    Node(char *n = "", int a = 0){
        name = new char[strlen(n) + 1];
        strcpy(name, n);
        age = a;
    }
};

Node node1("Roger", 20), node2(node1);
cout << node1.name << ' ' << node1.age << ' ' << node2.name << ' ' << node2.age;
strcpy(node2.name, "Wendy");
node2.name = 30;
cout << node1.name << ' ' << node1.age << ' ' << node2.name << ' ' << node2.age;

Но есть ошибка:

oo@oo:~$ g++ unproper.cpp -o unproper
unproper.cpp:15:23: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
unproper.cpp:16:1: error: ‘cout’ does not name a type
unproper.cpp:17:7: error: expected constructor, destructor, or type conversion before ‘(’ token
unproper.cpp:18:1: error: ‘node2’ does not name a type
unproper.cpp:19:1: error: ‘cout’ does not name a type

Я искал это,это,это и это, но я не могу найти ответ.

Любая помощь будет оценена :)

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Counter strike global offensive ошибка при запуске
  • Counter strike global offensive не запускается fatal error
  • Counter strike global offensive как изменить прицел
  • Counter strike global offensive fatal error failed to connect with local steam client process
  • Counter strike global offensive engine error

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии