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++ (Все метки)
Выдает ошибку ‘cout’ does not name a type
__________________
0 |
Модератор 12640 / 10134 / 6102 Регистрация: 18.12.2011 Сообщений: 27,170 |
|
30.11.2020, 08:38 |
2 |
arkadyushka, всегда форматируйте код, тогда не будет таких ошибок. И, кстати,
(i%1==0) and (i%i==0) i%1 всегда дает ноль (кроме 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
Я искал это,это,это и это, но я не могу найти ответ.
Любая помощь будет оценена