Error c3861 gets идентификатор не найден

Ошибка с gets: идентификатор не найден C++ Решение и ответ на вопрос 2244454

nonameprogger

1 / 1 / 0

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

Сообщений: 169

1

12.05.2018, 10:52. Показов 9899. Ответов 7

Метки нет (Все метки)


C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include <iostream>
#include <cstdio>
 
int main()
{
    char string[256];
    std::cout << "Введите свой полный адрес: ";
    gets (string); // считать строку из стандартного потока ввода
    std::cout << "Ваш адрес: " << string;
    return 0;
}

Ошибка C3861 gets: идентификатор не найден

как решить

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



0



Даценд

Эксперт .NET

5858 / 4735 / 2940

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

Сообщений: 8,361

12.05.2018, 11:03

2

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

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <Windows.h>
 
int main()
{
    SetConsoleCP(1251); //для кириллицы
    SetConsoleOutputCP(1251);
    std::string adress;
    std::cout << "Введите свой полный адрес: ";
    std::getline(std::cin, adress); // считать строку из стандартного потока ввода
    std::cout << "Ваш адрес: " << adress << std::endl;
    return 0;
}



0



nonameprogger

1 / 1 / 0

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

Сообщений: 169

12.05.2018, 11:06

 [ТС]

3

Даценд,
как реализовать ввод с клавы
чтоб я ввел,например,»privet»
и он посчитал

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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
char * findchar(char * str, char ch) {
    for (; *str; ++str)
        if (*str == ch) return str;
    return NULL;
}
 
 
int main() {
 
    char txt[10] ;
    cout << "vvedi txt";
    fgets(txt);
    char fstr[] = "mceyu.lkgh";
    int slen = strlen(fstr);
    int * countchar = new int[slen];
    memset(countchar, 0, slen * sizeof(*countchar));
    for (char *p = txt, *pf; *p; ++p) {
        if (pf = findchar(fstr, *p)) {
            ++(countchar[pf - fstr]);
        }
    }
    cout << "Text:n" << txt;
    cout << "nFind:n" << fstr << std::endl;
    for (int i = 0; i<slen; ++i) {
        std::cout << "Char " << fstr[i] << setw(3) << countchar[i] << std::endl;
    }
    delete[] countchar;
    cin.get();
    return 0;
}



0



1 / 1 / 1

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

Сообщений: 10

12.05.2018, 12:16

4

Вместо gets() поставь gets_s() И всё должно заработать



1



nonameprogger

1 / 1 / 0

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

Сообщений: 169

12.05.2018, 12:30

 [ТС]

5

C++
1
2
3
4
5
6
7
8
9
10
int main() {
    setlocale(LC_ALL, "Russian");
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    char txt[10];
    cout << "vvedi txt";
    gets_s(txt);
    char fstr[] = "йцукенгшщзхъфывапролджэчясмитьбю ";
    int slen = strlen(fstr);

если ввести «привет мир» то прога ломается
если ввести «приветмир» то прога работает
как быть?



0



1 / 1 / 0

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

Сообщений: 169

12.05.2018, 12:33

 [ТС]

6

жжцр

Миниатюры

Ошибка с gets: идентификатор не найден
 



0



1 / 1 / 0

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

Сообщений: 169

12.05.2018, 12:33

 [ТС]

7

Darvlinig,



0



14 / 14 / 8

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

Сообщений: 157

12.05.2018, 13:03

8

чем плоха реализация из поста 2?



0



Содержание

  1. Ошибка компилятора C3861
  2. Remarks
  3. Примеры
  4. Неопределенный идентификатор
  5. Идентификатор не в области
  6. Требуется квалификация пространства имен
  7. Устаревшая функция, вызываемая
  8. ADL и дружественные функции
  9. Русские Блоги
  10. Mr.J — Ошибка компиляции языка C C3861
  11. идентификатор: Идентификатор не найден
  12. замечание
  13. примеров
  14. Неопределенный идентификатор
  15. Идентификатор вне области видимости
  16. Требуемая квалификация пространства имен
  17. Устаревший вызов функции
  18. ADL и функции друзей
  19. Интеллектуальная рекомендация
  20. Реализация оценки приложения iOS
  21. JS функциональное программирование (е)
  22. PWN_JarvisOJ_Level1
  23. Установка и развертывание Kubernetes
  24. На стороне многопроцессорного сервера — (2) *
  25. ошибка C3861: «система»: идентификатор не найден
  26. Решение
  27. Error c3861 gets идентификатор не найден
  28. Вопрос новичка

Ошибка компилятора 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 аргументов:

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

Источник

Русские Блоги

Mr.J — Ошибка компиляции языка C C3861

идентификатор: Идентификатор не найден

Даже с независимыми поисками, связанными с переменными, компилятор не может разрешить ссылки на идентификаторы.

замечание

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

Изменения для удаления устаревших функций из библиотеки времени выполнения 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, поскольку идентификатор виден только в его определении и области действия файла, если он не объявлен в других исходных файлах, которые его используют.

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

Классы исключений в стандартной библиотеке C ++ std Пространство имен.

Устаревший вызов функции

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

ADL и функции друзей

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

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

Для проблемы, с которой я столкнулся, сначала была определена функция, а затем использована . (Первая)

Интеллектуальная рекомендация

Реализация оценки приложения iOS

Есть два способа получить оценку приложения: перейти в App Store для оценки и оценка в приложении. 1. Перейдите в App Store, чтобы оценить ps: appid можно запросить в iTunes Connect 2. Встроенная оцен.

JS функциональное программирование (е)

Давайте рассмотрим простой пример, чтобы проиллюстрировать, как используется Reduce. Первый параметр Reduce — это то, что мы принимаем массив arrayOfNums, а второй параметр — функцию. Эта функция прин.

PWN_JarvisOJ_Level1

Nc первый Затем мы смотрим на декомпиляцию ida Перед «Hello, World! N» есть уязвимая_функция, проверьте эту функцию после ввода Видно, что только что появившийся странный адрес является пе.

Установка и развертывание Kubernetes

На самом деле, я опубликовал статью в этом разделе давным -давно, но она не достаточно подробно, и уровень не является ясным. Когда я развернулся сегодня, я увидел его достаточно (хотя это было успешн.

На стороне многопроцессорного сервера — (2) *

Обработка сигнала Родительский процесс часто очень занят, поэтому вы не можете просто вызвать функцию waitpid, чтобы дождаться завершения дочернего процесса. Затем обсудите решение. Обратитесь .

Источник

ошибка C3861: «система»: идентификатор не найден

Я только начал новый win32 консольное приложение в VS 2010 и установить Additional options собственность на precompiled header в предстоящем мастере.

На основе один из моих предыдущих вопросов Я решил использовать следующий основной прототип:

Я также изменил Character Set свойство проекта к Use Multi-Byte Character Set ,

Но следующий код:

Будет выдавать эти две ошибки:

У меня был такой же опыт, и ошибок не было!
Кто-нибудь может подсказать мне, что не так?

Решение

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

В случае с system функция, это определено в stdlib.h заголовочный файл

Итак, в начало вашего файла кода (или в вашем предварительно скомпилированном заголовочном файле) добавьте строку

(Вы используете угловые скобки вместо кавычек, потому что stdlib.h найден ли заголовок в том месте, о котором ранее сообщалось инструменту сборки; это включает в себя каталоги системных заголовков и другие каталоги, которые ваша конфигурация сборки специально требует.)

Помимо этого я сильно рекомендую против используя либо многобайтовый набор символов (все новые приложения Windows должны поддерживать Unicode), либо system функция, особенно system(«pause») ,

Источник

Error c3861 gets идентификатор не найден

Hi,
I am using atof function in my Form.h file of VC++ project.
I have added a #include «math.h» in my .cpp file.but when I am building the project I am getting error «Error C3861:atof:Identifier not found.

Why this is happening ,whether I am missing something.

Did you include the library header that holds the atof() function? I think it’s .

Did you include the library that holds the atof() function? I think it’s .

ouch. I mean, not wrong, but you include headers, not libraries.

Answer: What gaminic said. Except that you should include instead if you’re using C++ instead of C.

You should write instead of .

Just show us the relevant code, it’s a bit hard to tell what you’re actually doing without seeing it.

// Demo_C++.cpp : main project file.

#include «stdafx.h»
#include «Form1.h»
#include «cstdlib»

using namespace Demo_C;

[STAThreadAttribute]
int main(array ^args)
<
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);

// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
>

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

///
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// ‘Resource File Name’ property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
///
public ref class Form1 : public System::Windows::Forms::Form
<
public:
Form1(void)
<
InitializeComponent();
//
//TODO: Add the constructor code here
//
>

protected:
///
/// Clean up any resources being used.
///

Form1()
<
if (components)
<
delete components;
>
>
private: System::Windows::Forms::Button^ button1;
protected:

private:
///
/// Required designer variable.
///
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
///
/// Required method for Designer support — do not modify
/// the contents of this method with the code editor.
///
void InitializeComponent(void)
<
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(28, 105);
this->button1->Name = L»button1″;
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 0;
this->button1->Text = L»button1″;
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(282, 255);
this->Controls->Add(this->button1);
this->Name = L»Form1″;
this->Text = L»Form1″;
this->ResumeLayout(false);

>
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
<
System::String^ string=»0″;
double d=atof(string);
>
>;
>

Источник

Вопрос новичка

В группе учится N студентов. Вводя по три оценки каждого студента подсчитать число студентов, не имеющих оценок 2 и 3.

цикл пока не пихал. он на любые значения n,b,v выдает 0. что делать ?

Переменная c как я понимаю это число студентов, зачем тогда тип float?

После длинных праздников количество студентов не обязательно целое число )))

Помогите, пишет « error C3861: setlocate: идентификатор не найден ». Не могу понять в чём проблема.

Помогите, пишет « error C3861: setlocate: идентификатор не найден ». Не могу понять в чём проблема.

Команда называется setlocale а не setlocate,компилятор не знает что такое команда setlocate,такой команды не существует

Я уже сам нашёл, но спасибо))) Я просто недоглядел) Делетант)

Первый урок. Программу написала, скомпилировала. Что дальше? Как вывести строку на экран?

После компиляции программу обычно запускают. Консольные программы запускают через консоль(cmd.exe)

как построит полноценную калькулятор подскажите

Lexa, (1) внутри функции объявлять новое пространство имён нельзя. (2) Директива using используется для включения в текущее пространство имён либо всех идентификаторов из указанного пространства имён, либо указанные идентификаторы. Когда идентификатор из другого пространства имён включается в текущее пространство имён, обращаться к нему можно без полной квалификации (т.е. без префикса названия пространства имён и :: ).

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Источник

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();
}

Как исправить ошибку в коде С++?

Помогите исправить ошибку в коде.
Код ошибки в VS:
Ошибка C3861 gets: идентификатор не найден

#include<iostream>
#include<fstream>
#include<stdio.h>
#include<string>
using namespace std;
int main()
{
    char fileName[30], ch;
    fstream fps, fpt;
    cout << "Enter the Name of File: ";
    gets(fileName);
    fps.open(fileName, fstream::in);
    if (!fps)
    {
        cout << "nError Occurred, Opening the Source File (to Read)!";
        return 0;
    }
    fpt.open("tmp.txt", fstream::out);
    if (!fpt)
    {
        cout << "nError Occurred, Opening/Creating the tmp File!";
        return 0;
    }
    while (fps >> noskipws >> ch)
    {
        ch = ch + 100;
        fpt << ch;
    }
    fps.close();
    fpt.close();
    fps.open(fileName, fstream::out);
    if (!fps)
    {
        cout << "nError Occurred, Opening the Source File (to write)!";
        return 0;
    }
    fpt.open("tmp.txt", fstream::in);
    if (!fpt)
    {
        cout << "nError Occurred, Opening the tmp File!";
        return 0;
    }
    while (fpt >> noskipws >> ch)
        fps << ch;
    fps.close();
    fpt.close();
    cout << "nFile '" << fileName << "' Encrypted Successfully!";
    cout << endl;
    return 0;
}


  • Вопрос задан

    более года назад

  • 190 просмотров

Пригласить эксперта

В стандартной библиотеке нет функции gets.

Вы можете сделать тоже самое, используя этот код

#include <iostream>
#include <fstream>
#include <string>

int main()
{
	std::string file_name;
	std::cout << "Enter file name: " << std::endl;
	std::getline(std::cin, file_name);

	std::ifstream ifstream(file_name);

	std::string data_to_encrypt;
	std::getline(ifstream, data_to_encrypt);

	ifstream.close();

	for (auto& ch : data_to_encrypt)
	{
		ch += 100;
	}

	std::ofstream ofstream(file_name, std::ios::trunc | std::ios::out);
	
	ofstream << data_to_encrypt;
	ofstream.close();

	return 0;
}


  • Показать ещё
    Загружается…

09 февр. 2023, в 15:06

2000 руб./за проект

09 февр. 2023, в 15:02

12000 руб./за проект

09 февр. 2023, в 14:22

1500 руб./за проект

Минуточку внимания

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.

Я только начал новый win32 консольное приложение в VS 2010 и установить Additional options собственность на precompiled headerв предстоящем мастере.

На основе один из моих предыдущих вопросов Я решил использовать следующий основной прототип:

int main(int argc,  char* argv[])

Я также изменил Character Set свойство проекта к Use Multi-Byte Character Set,

Но следующий код:

system("pause");

Будет выдавать эти две ошибки:

error C3861: 'system': identifier not found
IntelliSense: identifier "system" is undefined

У меня был такой же опыт, и ошибок не было!
Кто-нибудь может подсказать мне, что не так?

2

Решение

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

В случае с system функция, это определено в stdlib.h заголовочный файл

Итак, в начало вашего файла кода (или в вашем предварительно скомпилированном заголовочном файле) добавьте строку

#include <stdlib.h>

(Вы используете угловые скобки вместо кавычек, потому что stdlib.h найден ли заголовок в том месте, о котором ранее сообщалось инструменту сборки; это включает в себя каталоги системных заголовков и другие каталоги, которые ваша конфигурация сборки специально требует.)

Помимо этого я сильно рекомендую против используя либо многобайтовый набор символов (все новые приложения Windows должны поддерживать Unicode), либо system функция, особенно system("pause"),

7

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

Для меня работало то, что #include "stdafx.h" был ПЕРВЫЙ ВКЛЮЧЕН в файл. Так #include <iostream> поэтому будет после этого.

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

3

идентификатор: Идентификатор не найден

Даже с независимыми поисками, связанными с переменными, компилятор не может разрешить ссылки на идентификаторы.

замечание

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

Изменения для удаления устаревших функций из библиотеки времени выполнения 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, поскольку идентификатор не определен.

C ++ копия

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

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

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

C ++ копия

// 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
}

C ++ копия

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

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

Классы исключений в стандартной библиотеке C ++stdПространство имен.

C ++ копия

// 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;
   }
}

Устаревший вызов функции

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

C ++ копия

// 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 и функции друзей

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

C ++ копия

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
}

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

C ++ копия

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

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

int main() {
   func();
}

Для проблемы, с которой я столкнулся, сначала была определена функция, а затем использована … (Первая)

Понравилась статья? Поделить с друзьями:
  • Error c3859 failed to create virtual memory for pch
  • Error c3646 noexcept неизвестный спецификатор переопределения
  • Error c36 mark detect
  • Error c3493 cannot be implicitly captured because no default capture mode has been specified
  • Error c2976 std vector слишком мало аргументов шаблон