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

Читал в одной книге, что если вам нужно делать одно действие несколько раз, то можно создать «void», в котором прописать это действие и вызывать его по необходимости. Я это и сделал и при попытке скомпилировать мне выдает ошибку C3861: «Crypt: идентификатор не определен». Кода пока в ней нету, это только каркас.

#include "stdafx.h"
#include <iostream>
#include <iso646.h>
#include <cstring>
#include <cstdio>
#include <stdio.h>
#include <string>
using namespace std;

int main()
{
setlocale(LC_ALL, "Rus");
int key, i, n, func = 0;
char original[80];
char code;

cout << "Что вы хотите выполнить: шифрование(1) или дешифрование(2): ";
cin >> func;

if (func == 1) {
    Crypt();
}
else if (func == 2) {

}
else
    cout << "Вы выбрали неверное действие." << endl;

system("pause");
return 0;
}

void Crypt() {

cout << "privet?";
}

void encrypt() {


}

void’ы находятся вне int main если что

I have a problem with my code. Unfortunately, when compiling I get these errors all the time. What can this be caused by and how to fix it?

error C3861: ‘print’: identifier not found

My code:

main.cpp

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

using namespace std;

int main()
{
    Pojazdy** poj;
    int size{ 0 }, index{ 0 };
    Petla(poj, size);

    print(poj, size);

    wyrejestruj(poj,size,0);
    print(poj, size);
    wyrejestruj(poj,size);

    return 0;
}

pojazdy.h

#ifndef pojazdy_h
#define pojazdy_h

#include <iostream>
#include <cstdlib>

using namespace std;

class Pojazdy
{
public:
    string typ;
    string marka;
    string model;
    string z_dod;
    int ilosc;
    int cena;

    void dodaj();
    void d_pojazd(Pojazdy**& pojazdy, int& size);
    void wyrejestruj(Pojazdy**& pojazdy, int& size, int index);
    void print(Pojazdy** pojazdy, int size);
    void Petla(Pojazdy**& p, int& size);

    //void wyswietl();
    int get_ilosc() { return ilosc; }
    string get_typ() { return typ; }
    string get_marka() { return marka; }
    string get_model() { return model; }
    int get_cena() { return cena; }
    void set_ilosc(int x);
};

#endif

pojazdy.cpp

#include "pojazdy.h"

#include <iostream>

using namespace std;

void Pojazdy::set_ilosc(int x) { ilosc = x; }

void Pojazdy::dodaj()
{
    cout << "DODAWANIE POJAZDU..." << endl;
    cout << "Podaj typ pojazdu:";
    cin >> typ;

    cout << "Podaj marke pojazdu: ";
    cin >> marka;

    cout << "Podaj model pojazdu: ";
    cin >> model;

    cout << "Dodaj cene pojazdu: ";
    cin >> cena;
}

void Petla(Pojazdy**& p, int& size) {
    char z_dod;// = 'N';
    do {
        d_pojazd(p, size); //odpowiada za dodawnie
        p[size - 1]->dodaj();
        cout << "Czy chcesz zakonczyc dodawanie? Jesli tak, wcisnij Y/N: ";
        cin >> z_dod;

    } while (z_dod == 'N' || z_dod == 'n');//while (p[size]->z_dod == "N" ||p[size]->z_dod == "n");
}

void print(Pojazdy** pojazdy, int size) {
    std::cout << "====================================" << std::endl;
    for (int i{ 0 }; i < size; i++)
        std::cout << "Typ: " << pojazdy[i]->get_typ() << " Marka: " << pojazdy[i]->get_marka() << " Model: " << pojazdy[i]->get_model() << " Cena: " << pojazdy[i]->get_model() << std::endl;
}

void wyrejestruj(Pojazdy**& pojazdy, int& size) {
    for (size_t i{ 0 }; i < size; i++)
        delete pojazdy[i];
    delete[] pojazdy;
    size = 0;
    pojazdy = NULL;
}

void wyrejestruj(Pojazdy**& pojazdy, int& size, int index) {
    if (index < size) {
        Pojazdy** temp = new Pojazdy * [size - 1];
        short int j{ -1 };
        for (size_t i{ 0 }; i < size; i++) {
            if (i != index) {
                j++;
                temp[j] = pojazdy[i];
            }
        }
        delete[] pojazdy;
        --size;
        pojazdy = temp;
    }
    else
        std::cout << "Pamiec zwolniona!" << std::endl;
}

void d_pojazd(Pojazdy**& pojazdy, int& size) {
    Pojazdy** temp = new Pojazdy * [size + 1];
    if (size == 0)
        temp[size] = new Pojazdy;
    else {
        for (int i{ 0 }; i < size; i++)
            temp[i] = pojazdy[i];
        delete[] pojazdy;

        temp[size] = new Pojazdy;
    }
    ++size;
    pojazdy = temp;
}

I used #ifndef, #define, #endif and #pragma once, but none of them work. I will be really grateful for every code, I am already tired of this second hour. And forgive the non-English variables and function names for them — it’s university code, so I didn’t feel the need.

01.04.2016, 22:52. Показов 41804. Ответов 2


Студворк — интернет-сервис помощи студентам

Не суть важен текст программы, как то, что у меня не получается подключить функции.
Выдает ошибку:
С3861 «название функции»: идентификатор не найден

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

Но, честно говоря, не особо понял что надобно делать.
Может, я что-то не подключил?

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

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
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Russian");
    int n, p;
    double **a = NULL;
    double **b = NULL;
    double **c = NULL;
    double **a1 = NULL;
    double **b1 = NULL;
    cout << "Введите размерность массива (число n): ";
    cin >> n;
    NewMemory(a, n);
    NewMemory(b, n);
    NewMemory(c, n);
    NewMemory(a1, n);
    NewMemory(b1, n);
 
    do
        {
            system("cls");
            cout << "1. Создание матрицы a " << endl;
            cout << "2. Создание матрицы b " << endl;
            cout << "3. Нахождение m-нормы матрицы a" << endl;
            cout << "4. Умножение матрицы B на число (b1= b*am)" << endl;
            cout << "5. Вычитание матриц(a1=a-b1)" << endl;
            cout << "6. Обращение матрицы( с=a1^(-1)" << endl;
            cout << "7. Вывод всех матриц(a, a1, b, b1, c)" << endl;
            cout << "8. Конец работы" << endl << endl;
            cout << "Укажите пункт меню: ";
            cin >> p;
            switch (p) 
            {
            case 1: AarrayCreator(a, n);
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                break;
            case 6:
                break;
            case 7:
                break;
            case 8:
                DeleteArray(a, n);
                DeleteArray(b, n);
                DeleteArray(c, n);
                DeleteArray(a1, n);
                DeleteArray(b1, n);
                return;
            }
            _getch();
        } while (true);
    system("Pause");
}
 
 
void NewMemory(double **&h, int n)
{
    h = new double* [n];
    for (int i = 0; i < 2; i++)
        h[i] = new double[n];
}
 
void DeleteArray(double **&h, int n)
{
    for (int i = 0; i < n; i++)
        delete[] h[i];
}
 
double AarrayCreator(double **h, int n) {
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            h[i][j] = (sin(i + j))*sin(i + j);
}

P.S. я не знаю насколько правильный весь код. Сразу извиняюсь за корявость
P.S.S Ошибку он мне выдает на каждое объявление функции. Всех функций



0



почему компилятор пишет что
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(61,2): error C3861: set_assign: идентификатор не найден
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(62,2): error C3861: write_assign: идентификатор не найден
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(68,2): error C3861: set_assign: идентификатор не найден
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(69,2): error C3861: write_assign: идентификатор не найден
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(71,7): error C3861: sum: идентификатор не найден
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(74,2): error C3861: write_assign: идентификатор не найден
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(76,7): error C3861: sub: идентификатор не найден
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(79,2): error C3861: write_assign: идентификатор не найден
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(81,7): error C3861: mul: идентификатор не найден
1>C:UsersUsersourcereposLaboratorka1Laboratorka1Source.cpp(84,2): error C3861: write_assign: идентификатор не найден?

#include <iostream>
//#include <conio.h>
using namespace std;

struct kom {

double real, image;
//private:
kom set_assign(double y1, double y2, kom& math)
{
	math.real = y1;
	math.image = y2;
	return math;
}
void write_assign(kom math)
{
	if (math.image >= 0) {
		cout << math.real << "+" << math.image << "i";
	}
	else {
		cout << math.real << math.image << "i";
	}
}
kom sum(kom m1, kom m2)
{
	kom m3;
	m3.real = m1.real + m2.real;
	m3.image = m1.image + m2.image;
	return m3;
}
kom sub(kom m1, kom m2)
{
	kom m3;
	m3.real = m1.real - m2.real;
	m3.image = m1.image - m2.image;
	return m3;
}
kom mul(kom m1, kom m2)
{
	kom m3;
	m3.real = m1.real * m2.real;
	m3.image = m1.image * m2.image;
	return m3;
}
};

int main(void)
{
	double y1 = 0;
	double y2 = 0;
	kom math1;
	kom math2;
	kom math3;
	kom m1;
	kom m2;
	kom m3;

	cin >> y1;
	cin >> y2;

	set_assign(y1, y2, math1);
	write_assign(math1);
	cout << endl;

	cin >> y1;
	cin >> y2;

	set_assign(y1, y2, math2);
	write_assign(math2);

	m3 = sum(math1, math2);
	cout << endl;
	cout << "Sum:" << 'n';
	write_assign(m3);

	m3 = sub(math1, math2);
	cout << endl;
	cout << "Sub:" << 'n';
	write_assign(m3);

	m3 = mul(math1, math2);
	cout << endl;
	cout << "Mul:" << 'n';
	write_assign(m3);

	return 0;
}

Просто структура работала. Я внёс все функции внутрь структуры.

  • Remove From My Forums
  • Вопрос

  • Код взят из журнала MSDN «C++ Введение в C++ AMP».

    #include <amp.h>             // заголовочный файл C++ AMP
    #include <iostream>          // для std::cout и т. д.
    using namespace concurrency; // так меньше набирать кода :)
    using std::vector;// то же самое; берется из <vector> в amp.h
    
    void perform_calculation(
    vector<int> & vA, vector<int> & vB,
    vector<int> & vC, int M, int N)
    {
    	extent<2> e(M, N);
    	array_view<int, 2> a(e, vA), b(e, vB);
    	array_view<int, 2> c(e, vC);
    	c.discard_data();
    	index<2> idx(0, 0);
    	parallel_for_each(e, [=](index<2> idx) restrict(amp)
    	{
    		c[idx] = a[idx] + b[idx];
    	});
    	c.synchronize();
    }
    
    void do_it()
    {
    	// Строки и столбцы для матрицы
    	const int M = 1024;
    	const int N = 1024;
    	// Создаем хранилище для матрицы указанных размеров
    	vector<int> vA(M * N);
    	vector<int> vB(M * N);
    	// Заполняем матричные объекты
    	int i = 0;
    	std::generate(vA.begin(), vA.end(), [&i]() {return i++; });
    	std::generate(vB.begin(), vB.end(), [&i]() {return i--; });
    	// Выходное хранилище для матричных вычислений
    	vector<int> vC(M * N);
    	perform_calculation(vA, vB, vC, M, N);
    }
    
    int main()
    {
    	do_it();
    	std::cout << "Hit any key to exit..." << std::endl;
    	std::cin.get();
    }

    Код пытаюсь запустись в среде Visual Studio 2019. Предварительно никаких ошибок не находит, но при компиляции выдаёт:

    amp.h(2616): error C3861: _Access: идентификатор не найден.

    error C3588: приведение «unknown-type» к «void *» не поддерживается в коде, ограниченном AMP

    Не совсем понимаю, что я делаю не так, если даже код с сайта MSDN не компилируется. Пробовал на нескольких компьютерах — выдаёт одну и ту же ошибку.

Ответы

  • Нашёл решение проблемы.

    В amp.h на 2616 строчке перед _Access нужно было добавить this->

    void * _Ptr = this->_Access(_Read_write_access, _Index);

    После этого проблема была устранена.

    • Помечено в качестве ответа

      14 августа 2019 г. 12:13

Понравилась статья? Поделить с друзьями:
  • Как найти девушку для легких отношений
  • Как найти свой вес тела
  • Как исправить лаги в fallout 3
  • Secondary master drive atapi incompatible press f1 to resume как исправить
  • Как найти толщину льда в физике