Идентификатор не определен c как исправить

Ответили на вопрос 2 человека. Оцените лучшие ответы! И подпишитесь на вопрос, чтобы узнавать о появлении новых ответов.

вот весь код

#include <iostream> 
#include <windows.h> 
using namespace std;
class Triangle
{
public:
	int a;
	int b;
	int c;
	int x;
	int y;
	Triangle(int a1, int b1, int c1) { a = a1; b = b1; c = c1; }
	double S() {
		return (sqrt((a + b + c) * (1.0 / 2) * ((a + b + c) * (1.0 / 2) - c) * ((a + b + c) * (1.0 / 2) - a) * ((a + b + c) * (1.0 / 2) - b)));
	}
	void move()
	{
		cout << endl;
		cout << "введи точку икс : ";
		cin >> x;
		cout << "введи точку игрек : ";
		cin >> y;
		cout << "фигура перемещена в точку " << x << " " << y << endl;
	}
};
class Rectangl
{
public:
	int a2;
	int b2;
	int x2;
	int y2;
	double sinx;
	Rectangl(int a1, int b1, double sinx1) { a2 = a1; b2 = b1; sinx = sinx1; }
	double S1() {
		return (0.5 * a2 * b2 * sinx);
	}
	void move1()
	{
		cout << endl;
		cout << "введи точку икс : ";
		cin >> x2;
		cout << "введи точку игрек : ";
		cin >> y2;
		cout << "фигура перемещена в точку " << x2 << " " << y2 << endl;
	}
};
class Work : public Triangle, public Rectangl
{
public:
	Work(int a, int b, int c, int a2, int b2 , double sinx ) :Triangle(a,b,c), Rectangl(a2,b2,sinx) {};
	void compare()
	{
		cout << S() <<endl;
		cout << S1() <<endl;

		if (S1() > S()) {
			cout << "Площадь четырёхугольника больше n";
		}
		if (S1() < S()) {
			cout << "Площадь треугольника больше n";
		}
		if (S1() == S()) {
			cout << "Площадь одинакова";
		}
	}
};
int main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	int a, b, c, a2, b2;
	double sinx;
	cout << "создать объекты?(жми 0)" << endl;
	int flak;
	cin >> flak;
	if (flak == 0) {
		cout << "введи стороны треугольника";
		cin >> a;
		cin >> b;
		cin >> c;
		cout << "введи диагонали и синус угла между ними для чутырёхугольника";
		cin >> a2;
		cin >> b2;
		cin >> sinx;

		Work* p;
		Triangle* p1;
		Rectangl* p2;
		p1 = new Triangle(a, b, c);
		p2 = new Rectangl(a2, b2, sinx);
		p = new Work(a, b, c, a2, b2, sinx);
		p->compare();
	}
	cout << "Что хочешь?" << endl;
	cout << "удалить объекты(жми1)" << endl;
	cout << "переместить объекты(жми2)" << endl;
	cout << "сравнить объекты(жми3)" << endl;

	int flak1;
	cin >> flak1;

	if (flak1 == 1) {
		delete p;
		delete p1;
		delete p2;
	}

	system("PAUSE");
	return 0;
}

интересуют три строки в конце с delete

Почему вне if все нормально, а внутри идентификатор не определен

Volchonok_kill

2 / 2 / 0

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

Сообщений: 88

1

20.10.2020, 10:03. Показов 4388. Ответов 4

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


Не удается откомпилировать программу из-за ошибки:»Идентификатор i не определен» и «i: необъявленный идентификатор»
Вот сама прога:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main()
{
    const int n = 10; // Размерность массива
    int a[n]; // Объявление массива
    for (int i = 0; i<=n; i++)
    {
        cout<<"Input the a["<<i<<"] element:t";
        cin>>a[i]; // Ввод значений массива
    }
    int count = 0; // Счетчик отрицательных элементов
    for (i = 0; i<=n; i++)
        if (a[i]< 0)
            count++; // Подсчет
    cout<<endl;
    for (i = 0; i<=n; i++)
        cout<<a[i]<<"t"; // Вывод исходного массива
    cout<<"nNumber of negative elements : t"<<count<<endl;
    // Вывод результатов подсчета
}

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



0



Exp2dot7

Заблокирован

20.10.2020, 10:09

2

стр 13,17 исправить как у 7



0



Модератор

Эксперт С++

12644 / 10136 / 6104

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

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

20.10.2020, 10:09

3

Лучший ответ Сообщение было отмечено Volchonok_kill как решение

Решение

А кто Вам мешает его объявить?
for (int i = 0;…
И, кстати, в массиве n элементов с номерами от нуля до n-1, поэтому везде надо
for (int i = 0; i<n; i++)



1



2 / 2 / 0

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

Сообщений: 88

20.10.2020, 10:19

 [ТС]

4

zss, спасибо, вроде все работает, но теперь, появилась другая ошибка, после завершения работы, в конце кода высвечивается ошибка «Run-Time Check Failure #2 — Stack around the variable ‘a’ was corrupted.» Не подскажите, что это могло бы значить.

Миниатюры

Идентификатор i не определен
 



0



Модератор

Эксперт С++

12644 / 10136 / 6104

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

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

20.10.2020, 17:48

5

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

что это могло бы значить.

Это и значит, что не везде вы написали

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

for (int i = 0; i<n; i++)



0



Когда программирую на C++ в Visual Studio, появляется ошибка в операторах сout и cin. Компилятор пишет, что эти операторы не объявлены (undeclared identifier). Подскажите, пожалуйста, что делать?

Добавлено.

Все равно ничего не получается

#include <iostream>
#include "stdafx.h"
#include <cmath>
using namespace std;
int main(){
    //объявление переменной:
    double V,T,alpha;
    //грави постоянная:
    const double g=9.8;
    //Ввод параметров:
    cout<<"V = ";-здесь выводит ошибку
    cin>>V;-и здесь
    cout<<"T = ";
    cin >>T;
    alpha = asin(g*T/2*V);
    cout<<"Значение угла альфа равно = "<<alpha;
    return 0;
}

Nicolas Chabanovsky's user avatar

задан 27 сен 2011 в 18:30

Саймон's user avatar

3

Поменяй местами #include <iostream> и #include "stdafx.h" ("stdafx.h" должно стоять первым).

angry's user avatar

angry

8,64717 золотых знаков72 серебряных знака180 бронзовых знаков

ответ дан 29 сен 2011 в 10:50

Vomifort's user avatar

Во-первых, надо было приводить версию среды, т.к. в Студии 2010 работает вполне нормально. В более старых версиях надо читать внимательно сообщения построения. Так, там наверняка должно быть сообщение типа «iostream: файл пропущен при поиске файла предкомпилированных заголовков», а именно — «stdafx.h». Поставьте #include "stdafx.h" в САМОМ НАЧАЛЕ, и да будет Вам счастье.

ответ дан 29 сен 2011 в 18:56

3JIoi_Hy6's user avatar

3JIoi_Hy63JIoi_Hy6

8926 серебряных знаков13 бронзовых знаков

Для правильной работы вам надо:

  1. Подключить библиотеку iostream.
  2. Воспользоваться конструкцией using namespace std для разрешения области видимости.

Пример кода:

#include <iostream>
using namespace std;

int main() {
    cout << "Hello std!" << endl;
    return 0;
}

ответ дан 27 сен 2011 в 18:58

Nicolas Chabanovsky's user avatar

Nicolas ChabanovskyNicolas Chabanovsky

50.6k80 золотых знаков257 серебряных знаков493 бронзовых знака

1

 // Требуется создать в VS пустой проект  
#include "stdafx.h"
#include "iostream"
#include <cmath>
#include <conio.h>
using namespace std;
int main(){
setlocale(0,"russian");
//объявление переменной:
double V,T,alpha;
//грави постоянная:
const double g=9.8;
//Ввод параметров:
cout << "V="; //-здесь выводит ошибку
cin >> V; //-и здесь
cout << "T=";
cin >> T;
alpha = asin(g*T/2*V);
cout << "Значение угла альфа равно = "<<alpha;
_getch();
 }

Но лучше все это дело через std::cin и std::cout

ответ дан 29 сен 2011 в 8:11

johnfelix's user avatar

johnfelixjohnfelix

1191 серебряный знак11 бронзовых знаков

2

description title ms.date f1_keywords helpviewer_keywords ms.assetid

Learn more about: Compiler Error C3861

Compiler Error C3861

06/29/2022

C3861

C3861

0a1eee30-b3db-41b1-b1e5-35949c3924d7

Compiler Error C3861

identifier‘: identifier not found

The compiler was unable to resolve a reference to an identifier, even using argument-dependent lookup.

Remarks

To fix this error, compare use of identifier to the identifier declaration for case and spelling. Verify that scope resolution operators and namespace using directives are used correctly. If the identifier is declared in a header file, verify that the header is included before the identifier is referenced. If the identifier is meant to be externally visible, make sure that it’s declared in any source file that uses it. Also check that the identifier declaration or definition isn’t excluded by conditional compilation directives.

Changes to remove obsolete functions from the C Runtime Library in Visual Studio 2015 can cause C3861. To resolve this error, remove references to these functions or replace them with their secure alternatives, if any. For more information, see Obsolete functions.

If error C3861 appears after project migration from older versions of the compiler, you may have issues related to supported Windows versions. Visual C++ no longer supports targeting Windows 95, Windows 98, Windows ME, Windows NT or Windows 2000. If your WINVER or _WIN32_WINNT macros are assigned to one of these versions of Windows, you must modify the macros. For more information, see Modifying WINVER and _WIN32_WINNT.

Examples

Undefined identifier

The following sample generates C3861 because the identifier isn’t defined.

// C3861.cpp
void f2(){}
int main() {
   f();    // C3861
   f2();   // OK
}

Identifier not in scope

The following sample generates C3861, because an identifier is only visible in the file scope of its definition, unless it’s declared in other source files that use it.

Source file C3861_a1.cpp:

// C3861_a1.cpp
// Compile with: cl /EHsc /W4 C3861_a1.cpp C3861_a2.cpp
#include <iostream>
// Uncomment the following line to fix:
// int f();  // declaration makes external function visible
int main() {
   std::cout << f() << std::endl;    // C3861
}

Source file C3861_a2.cpp:

// C3861_a2.cpp
int f() {  // declared and defined here
   return 42;
}

Namespace qualification required

Exception classes in the C++ Standard Library require the std namespace.

// C3861_b.cpp
// compile with: /EHsc
#include <iostream>
int main() {
   try {
      throw exception("Exception");   // C3861
      // try the following line instead
      // throw std::exception("Exception");
   }
   catch (...) {
      std::cout << "caught an exception" << std::endl;
   }
}

Obsolete function called

Obsolete functions have been removed from the CRT library.

// C3861_c.cpp
#include <stdio.h>
int main() {
   char line[21]; // room for 20 chars + ''
   gets( line );  // C3861
   // Use gets_s instead.
   printf( "The line entered was: %sn", line );
}

ADL and friend functions

The following sample generates C3767 because the compiler can’t use argument dependent lookup for FriendFunc:

namespace N {
   class C {
      friend void FriendFunc() {}
      friend void AnotherFriendFunc(C* c) {}
   };
}

int main() {
   using namespace N;
   FriendFunc();   // C3861 error
   C* pC = new C();
   AnotherFriendFunc(pC);   // found via argument-dependent lookup
}

To fix the error, declare the friend in class scope and define it in namespace scope:

class MyClass {
   int m_private;
   friend void func();
};

void func() {
   MyClass s;
   s.m_private = 0;
}

int main() {
   func();
}
description title ms.date f1_keywords helpviewer_keywords ms.assetid

Learn more about: Compiler Error C3861

Compiler Error C3861

06/29/2022

C3861

C3861

0a1eee30-b3db-41b1-b1e5-35949c3924d7

Compiler Error C3861

identifier‘: identifier not found

The compiler was unable to resolve a reference to an identifier, even using argument-dependent lookup.

Remarks

To fix this error, compare use of identifier to the identifier declaration for case and spelling. Verify that scope resolution operators and namespace using directives are used correctly. If the identifier is declared in a header file, verify that the header is included before the identifier is referenced. If the identifier is meant to be externally visible, make sure that it’s declared in any source file that uses it. Also check that the identifier declaration or definition isn’t excluded by conditional compilation directives.

Changes to remove obsolete functions from the C Runtime Library in Visual Studio 2015 can cause C3861. To resolve this error, remove references to these functions or replace them with their secure alternatives, if any. For more information, see Obsolete functions.

If error C3861 appears after project migration from older versions of the compiler, you may have issues related to supported Windows versions. Visual C++ no longer supports targeting Windows 95, Windows 98, Windows ME, Windows NT or Windows 2000. If your WINVER or _WIN32_WINNT macros are assigned to one of these versions of Windows, you must modify the macros. For more information, see Modifying WINVER and _WIN32_WINNT.

Examples

Undefined identifier

The following sample generates C3861 because the identifier isn’t defined.

// C3861.cpp
void f2(){}
int main() {
   f();    // C3861
   f2();   // OK
}

Identifier not in scope

The following sample generates C3861, because an identifier is only visible in the file scope of its definition, unless it’s declared in other source files that use it.

Source file C3861_a1.cpp:

// C3861_a1.cpp
// Compile with: cl /EHsc /W4 C3861_a1.cpp C3861_a2.cpp
#include <iostream>
// Uncomment the following line to fix:
// int f();  // declaration makes external function visible
int main() {
   std::cout << f() << std::endl;    // C3861
}

Source file C3861_a2.cpp:

// C3861_a2.cpp
int f() {  // declared and defined here
   return 42;
}

Namespace qualification required

Exception classes in the C++ Standard Library require the std namespace.

// C3861_b.cpp
// compile with: /EHsc
#include <iostream>
int main() {
   try {
      throw exception("Exception");   // C3861
      // try the following line instead
      // throw std::exception("Exception");
   }
   catch (...) {
      std::cout << "caught an exception" << std::endl;
   }
}

Obsolete function called

Obsolete functions have been removed from the CRT library.

// C3861_c.cpp
#include <stdio.h>
int main() {
   char line[21]; // room for 20 chars + ''
   gets( line );  // C3861
   // Use gets_s instead.
   printf( "The line entered was: %sn", line );
}

ADL and friend functions

The following sample generates C3767 because the compiler can’t use argument dependent lookup for FriendFunc:

namespace N {
   class C {
      friend void FriendFunc() {}
      friend void AnotherFriendFunc(C* c) {}
   };
}

int main() {
   using namespace N;
   FriendFunc();   // C3861 error
   C* pC = new C();
   AnotherFriendFunc(pC);   // found via argument-dependent lookup
}

To fix the error, declare the friend in class scope and define it in namespace scope:

class MyClass {
   int m_private;
   friend void func();
};

void func() {
   MyClass s;
   s.m_private = 0;
}

int main() {
   func();
}

Содержание

  1. Ошибка компилятора C3861
  2. Remarks
  3. Примеры
  4. Неопределенный идентификатор
  5. Идентификатор не в области
  6. Требуется квалификация пространства имен
  7. Устаревшая функция, вызываемая
  8. ADL и дружественные функции
  9. ‘random’: ошибка не найден идентификатор
  10. 2 ответы

Ошибка компилятора C3861

Компилятору не удалось разрешить ссылку на идентификатор, даже используя поиск, зависящий от аргументов.

Чтобы устранить эту ошибку, сравните использование идентификатора с объявлением идентификатора для регистра и орфографии. Убедитесь, что операторы разрешения области и директивы пространства имен using используются правильно. Если идентификатор объявлен в файле заголовка, убедитесь, что заголовок включен до ссылки на идентификатор. Если идентификатор должен быть видимым извне, убедитесь, что он объявлен в любом исходном файле, который его использует. Кроме того, убедитесь, что объявление или определение идентификатора не исключается директивами условной компиляции.

Изменения для удаления устаревших функций из библиотеки среды выполнения C в Visual Studio 2015 могут вызвать C3861. Чтобы устранить эту ошибку, удалите ссылки на эти функции или замените их безопасными альтернативами, если таковые есть. Дополнительные сведения см. в разделе «Устаревшие функции».

Если ошибка C3861 появляется после миграции проекта из более старых версий компилятора, могут возникнуть проблемы, связанные с поддерживаемыми версиями Windows. Visual C++ больше не поддерживает создание программ для Windows 95, Windows 98, Windows ME, Windows NT и Windows 2000. Если макросы WINVER _WIN32_WINNT назначены одной из этих версий Windows, необходимо изменить макросы. Дополнительные сведения см. в разделе «Изменение WINVER и _WIN32_WINNT «.

Примеры

Неопределенный идентификатор

В следующем примере возникает ошибка C3861, так как идентификатор не определен.

Идентификатор не в области

Следующий пример приводит к возникновению ошибки C3861, так как идентификатор виден только в области его определения файла, если он не объявлен в других исходных файлах, использующих его.

Исходный файл C3861_a1.cpp :

Исходный файл C3861_a2.cpp :

Требуется квалификация пространства имен

Для классов исключений в стандартной библиотеке C++ требуется std пространство имен.

Устаревшая функция, вызываемая

Устаревшие функции удалены из библиотеки CRT.

ADL и дружественные функции

Следующий пример приводит к возникновению ошибки C3767, так как компилятор не может использовать поиск, зависящий от FriendFunc аргументов:

Чтобы устранить ошибку, объявите друга в области класса и определите его в области пространства имен:

Источник

‘random’: ошибка не найден идентификатор

Я пытаюсь перенести код, написанный для UNIX, в Visual Studio и получаю следующие ошибки

Код длинный, но я уже включен math.h но я все еще получаю эти ошибки. Возможно, эти функции доступны только для UNIX! Если да, то что я могу сделать?

Вот модифицированный образец моего кода (строки, которые дают мне ошибки);

О, я имею в виду, что не пишите имена функций ВСЕМИ ЗАГЛАВНЫМИ буквами. — Sufian Latif

2 ответы

random -> rand (Не забудьте # include для этого)

И напишите initstate перед основным или сделать предварительное заявление.

Как мне написать initstate перед основным или сделать предварительное заявление? initstate вызывается в другой функции (которая называется моей основной) — Ророноа-Зоро

Для прямого объявления поместите подпись функции в начало кода. — Суфиан Латиф

Извините, если это прозвучало банально. Но у меня нет определения initstate . Разве это не должно быть похоже random ? — Ророноа-Зоро

Тогда как ты звонишь initstate ? — Суфиан Латиф

Используйте функции srand() и rand() от stdlib.h с целью. — Суфиан Латиф

Включите stdlib.h и используйте функцию rand ().

Также функции имеют имена в нижнем регистре cos, log, sqrt.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками c++ visual-studio-2010 random or задайте свой вопрос.

Источник

Что такое необъявленные ошибки идентификатора? Каковы общие причины и как их исправить?

Пример текстов ошибок:

  • Для компилятора Visual Studio: error C2065: 'cout' : undeclared identifier
  • Для компилятора GCC: 'cout' undeclared (first use in this function)

39

Решение

Чаще всего они приходят из-за того, что забывают включить заголовочный файл, содержащий объявление функции, например, эта программа выдаст ошибку «необъявленный идентификатор»:

Отсутствует заголовок

int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}

Чтобы это исправить, мы должны включить заголовок:

#include <iostream>
int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}

Если вы написали заголовок и включили его правильно, заголовок может содержать неправильный включить охрану.

Чтобы узнать больше, смотрите http://msdn.microsoft.com/en-us/library/aa229215(v=vs.60).aspx.

Переменная с ошибкой

Другой распространенный источник ошибки новичка возникает, когда вы неправильно написали переменную:

int main() {
int aComplicatedName;
AComplicatedName = 1;  /* mind the uppercase A */
return 0;
}

Неправильный объем

Например, этот код выдаст ошибку, потому что вам нужно использовать std::string:

#include <string>

int main() {
std::string s1 = "Hello"; // Correct.
string s2 = "world"; // WRONG - would give error.
}

Использовать до объявления

void f() { g(); }
void g() { }

g не был объявлен до его первого использования. Чтобы это исправить, либо переместите определение g до f:

void g() { }
void f() { g(); }

Или добавить декларацию g до f:

void g(); // declaration
void f() { g(); }
void g() { } // definition

stdafx.h не сверху (специфично для VS)

Это зависит от Visual Studio. В VS нужно добавить #include "stdafx.h" перед любым кодом. Код до того, как он игнорируется компилятором, так что если у вас есть это:

#include <iostream>
#include "stdafx.h"

#include <iostream> будет проигнорировано Вам нужно переместить его ниже:

#include "stdafx.h"#include <iostream>

Не стесняйтесь редактировать этот ответ.

54

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

Рассмотрим похожую ситуацию в разговоре. Представьте, что ваш друг говорит вам: «Боб идет на ужин», а ты не представляешь, кто такой Боб. Вы будете в замешательстве, верно? Твой друг должен был сказать: «У меня есть коллега по работе по имени Боб. Боб подходит к обеду». Теперь Боб объявлен, и вы знаете, о ком говорит ваш друг.

Компилятор выдает ошибку «необъявленный идентификатор», когда вы пытаетесь использовать какой-то идентификатор (который будет именем функции, переменной, класса и т. Д.), И компилятор не видит объявления для него. То есть компилятор понятия не имеет, о чем вы говорите, потому что раньше его не видел.

Если вы получаете такую ​​ошибку в C или C ++, это означает, что вы не сказали компилятору о том, что вы пытаетесь использовать. Объявления часто встречаются в заголовочных файлах, поэтому, скорее всего, это означает, что вы не включили соответствующий заголовок. Конечно, может случиться так, что вы просто не помните, чтобы объявить сущность вообще.

Некоторые компиляторы выдают более конкретные ошибки в зависимости от контекста. Например, пытаясь скомпилировать X x; где тип X не был объявлен с Clang скажет вам «неизвестное имя типа X«. Это гораздо полезнее, потому что вы знаете, что он пытается интерпретировать X как тип. Тем не менее, если у вас есть int x = y;, где y еще не объявлено, он скажет вам «использование необъявленного идентификатора y«потому что есть некоторая двусмысленность в том, что именно y может представлять.

12

У меня была такая же проблема с пользовательским классом, который был определен в пространстве имен. Я пытался использовать класс без пространства имен, вызывая ошибку компилятора «идентификатор» MyClass «не определен».
Добавление

using namespace <MyNamespace>

или используя класс, как

MyNamespace::MyClass myClass;

решил проблему.

5

В C и C ++ все имена должны быть объявлены перед использованием. Если вы попытаетесь использовать имя переменной или функции, которая не была объявлена, вы получите ошибку «необъявленный идентификатор».

Однако функции — это особый случай в C (и только в C), в котором вам не нужно сначала объявлять их. Компилятор C будет предполагать, что функция существует с числом и типом аргументов, как в вызове. Если фактическое определение функции не совпадает, вы получите еще одну ошибку. Этот особый случай для функций не существует в C ++.

Вы исправляете ошибки такого рода, проверяя, что функции и переменные объявлены до их использования. В случае printf вам нужно включить заголовочный файл <stdio.h> (или же <cstdio> в C ++).

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

4

Эти сообщения об ошибках

1.For the Visual Studio compiler: error C2065: 'printf' : undeclared identifier
2.For the GCC compiler: `printf' undeclared (first use in this function)

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

Любое имя, используемое в программе, должно быть объявлено до ее использования. Компилятор должен знать, что обозначает имя.

В этом конкретном случае компилятор не видит объявление имени printf , Как мы знаем (но не компилятор) это имя стандартной функции C, объявленной в заголовке <stdio.h> в C или в заголовке <cstdio> в C ++ и размещены в стандарте (std::) и глобальный (::) (не обязательно) пространства имен.

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

Например
C:

#include <stdio.h>

int main( void )
{
printf( "Hello Worldn" );
}

C ++:

#include <cstdio>

int main()
{
std::printf( "Hello Worldn" );
// or printf( "Hello Worldn" );
// or ::printf( "Hello Worldn" );
}

Иногда причиной такой ошибки является простая опечатка. Например, давайте предположим, что вы определили функцию PrintHello

void PrintHello()
{
std::printf( "Hello Worldn" );
}

но в основном вы сделали опечатку и вместо PrintHello ты напечатал printHello с строчной буквы «р».

#include <cstdio>

void PrintHello()
{
std::printf( "Hello Worldn" );
}

int main()
{
printHello();
}

В этом случае компилятор выдаст такую ​​ошибку, потому что он не видит объявление имени printHello, PrintHello а также printHello два разных имени, одно из которых было объявлено, а другое не объявлено, но используется в теле основного

3

Это похоже на использование функции без ее объявления. заголовочный файл будет содержать
функция printf (). Включите заголовочный файл в вашу программу, это решение для этого.
Некоторые пользовательские функции могут также вызывать ошибки, если они не были объявлены перед использованием. Если
это используется во всем мире без проб.

0

В большинстве случаев, если вы уверены, что импортировали данную библиотеку, Visual Studio поможет вам с IntelliSense.

Вот что сработало для меня:

Удостоверься что #include "stdafx.h" объявляется первым, то есть вверху всех ваших включений.

0

Понравилась статья? Поделить с друзьями:
  • Идентификатор воспроизведения ютуб ошибка на телевизоре
  • Инфинити ошибка b1134
  • Зум код ошибки 104114
  • Идентификатор error не определен
  • Зум код ошибки 3078 что это