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

Работа со строками. Error C3861: getline: идентификатор не найден C++ Решение и ответ на вопрос 1142016

rivares1853

0 / 0 / 1

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

Сообщений: 68

1

08.04.2014, 01:48. Показов 7554. Ответов 3

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


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE,"");
 
    int i, j=0;
    string s1, slovo;
 
    cout<<"Введите строчку:  "<<endl;
    getline(cin,s1);
    cout<<"Введите слово:  "<<endl;
    getline(cin,slovo);
    
    return 0;
}

Пишет: error C3861: getline: идентификатор не найден .В чём косяк?

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



0



alsav22

5493 / 4888 / 831

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

Сообщений: 13,587

08.04.2014, 01:53

2

C++
1
#include <string>



1



0 / 0 / 1

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

Сообщений: 68

08.04.2014, 02:00

 [ТС]

3

alsav22, Спасибо!!!!

Добавлено через 2 минуты
alsav22, А вы можете объяснить почему именно <string> без h ?



0



5493 / 4888 / 831

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

Сообщений: 13,587

08.04.2014, 02:13

4

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

А вы можете объяснить почему именно <string> без h ?

string.h — это хедер для работы с С-строками, а для объектов класса string (которые используются у вас в коде), нужен хедер string.



1



I’ve started programming abstractions (CS106B) from SEE. I’m having a hard time starting the assignment. Here’s the code for the warmup exercise. I’ve already consulted various different solutions but none of them worked, hence, was compelled to post this here.

#include <iostream>
#include <cstring>
#include "console.h"
using namespace std;

/* Constants */

const int HASH_SEED = 5381;               /* Starting point for first cycle */
const int HASH_MULTIPLIER = 33;           /* Multiplier for each cycle      */
const int HASH_MASK = unsigned(-1) >> 1;  /* All 1 bits except the sign     */

/* Function prototypes */

int hashCode(string name);

/* Main program to test the hash function */

int main() {
   string name = getLine("Please enter your name: ");
   int code = hashCode(name);
   cout << "The hash code for your name is " << code << "." << endl;
   return 0;
}

/*
 * Function: hash
 * Usage: int code = hashCode(key);
 * --------------------------------
 * This function takes the key and uses it to derive a hash code,
 * which is nonnegative integer related to the key by a deterministic
 * function that distributes keys well across the space of integers.
 * The general method is called linear congruence, which is also used
 * in random-number generators.  The specific algorithm used here is
 * called djb2 after the initials of its inventor, Daniel J. Bernstein,
 * Professor of Mathematics at the University of Illinois at Chicago.
 */

int hashCode(string str) {
   unsigned hash = HASH_SEED;
   int nchars = str.length();
   for (int i = 0; i < nchars; i++) {
      hash = HASH_MULTIPLIER * hash + str[i];
   }
   return (hash & HASH_MASK);
}

Compilation log:

> 1>------ Build started: Project: Warmup, Configuration: Debug Win32 ------
1>Compiling...
1>Warmup.cpp
1>c:usersusersgoogle drivecoursesprogramming abstractions (stanford cs106b) 2012assignmentsassignment1-vs2008assignment1-vs2008-warmupsrcwarmup.cpp(30) : error C3861: 'getLine': identifier not found
1>Build log was saved at "file://c:UsersUsersGoogle DriveCoursesProgramming Abstractions (Stanford CS106B) 2012AssignmentsAssignment1-vs2008Assignment1-vs2008-WarmupWarmupDebugBuildLog.htm"

1>Warmup - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

For your first error, I think that the problem is in this declaration:

 const float APRICE = 6.00,
       float CPRICE = 3.00;

In C++, to declare multiple constants in a line, you don’t repeat the name of the type. Instead, just write

 const float APRICE = 6.00,
             CPRICE = 3.00;

This should also fix your last error, which I believe is caused by the compiler getting confused that CPRICE is a constant because of the error in your declaration.

For the second error, to use getline, you need to

#include <string>

not just

#include <cstring>

Since the getline function is in <string> (the new C++ string header) and not <cstring> (the old-style C string header).

That said, I think you’ll still get errors from this, because movieName is declared as an int. Try defining it as a std::string instead. You might also want to declare your other variables as floats, since they’re storing real numbers. More generally, I would suggest defining your variables as you need them, rather than all up at the top.

Hope this helps!

For your first error, I think that the problem is in this declaration:

 const float APRICE = 6.00,
       float CPRICE = 3.00;

In C++, to declare multiple constants in a line, you don’t repeat the name of the type. Instead, just write

 const float APRICE = 6.00,
             CPRICE = 3.00;

This should also fix your last error, which I believe is caused by the compiler getting confused that CPRICE is a constant because of the error in your declaration.

For the second error, to use getline, you need to

#include <string>

not just

#include <cstring>

Since the getline function is in <string> (the new C++ string header) and not <cstring> (the old-style C string header).

That said, I think you’ll still get errors from this, because movieName is declared as an int. Try defining it as a std::string instead. You might also want to declare your other variables as floats, since they’re storing real numbers. More generally, I would suggest defining your variables as you need them, rather than all up at the top.

Hope this helps!

Я начал программировать абстракции (CS106B) из SEE. Мне тяжело начинать задание. Вот код для разминки. Я уже консультировался с различными решениями, но ни одно из них не сработало, поэтому я был вынужден опубликовать это здесь.

#include <iostream>
#include <cstring>
#include "console.h"using namespace std;

/* Constants */

const int HASH_SEED = 5381;               /* Starting point for first cycle */
const int HASH_MULTIPLIER = 33;           /* Multiplier for each cycle      */
const int HASH_MASK = unsigned(-1) >> 1;  /* All 1 bits except the sign     */

/* Function prototypes */

int hashCode(string name);

/* Main program to test the hash function */

int main() {
string name = getLine("Please enter your name: ");
int code = hashCode(name);
cout << "The hash code for your name is " << code << "." << endl;
return 0;
}

/*
* Function: hash
* Usage: int code = hashCode(key);
* --------------------------------
* This function takes the key and uses it to derive a hash code,
* which is nonnegative integer related to the key by a deterministic
* function that distributes keys well across the space of integers.
* The general method is called linear congruence, which is also used
* in random-number generators.  The specific algorithm used here is
* called djb2 after the initials of its inventor, Daniel J. Bernstein,
* Professor of Mathematics at the University of Illinois at Chicago.
*/

int hashCode(string str) {
unsigned hash = HASH_SEED;
int nchars = str.length();
for (int i = 0; i < nchars; i++) {
hash = HASH_MULTIPLIER * hash + str[i];
}
return (hash & HASH_MASK);
}

Журнал компиляции:

> 1>------ Build started: Project: Warmup, Configuration: Debug Win32 ------
1>Compiling...
1>Warmup.cpp
1>c:usersusersgoogle drivecoursesprogramming abstractions (stanford cs106b) 2012assignmentsassignment1-vs2008assignment1-vs2008-warmupsrcwarmup.cpp(30) : error C3861: 'getLine': identifier not found
1>Build log was saved at "file://c:UsersUsersGoogle DriveCoursesProgramming Abstractions (Stanford CS106B) 2012AssignmentsAssignment1-vs2008Assignment1-vs2008-WarmupWarmupDebugBuildLog.htm"
1>Warmup - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

-3

Решение

Быстрый рыться в документации для Стэнфордская библиотека C ++, найденный через домашнюю страницу для CS106B (я знаю, это звучит неправдоподобно, но это правда), показывает, что вы должны

 #include "simpio.h"

Я рекомендую вам добавить в закладки документацию; это спасет вас от многих ночных паники домашней работы.

5

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

Прежде всего, вы должны включить заголовок <string> вместо <cstring>

#include <string>

и во-вторых использовать getline вместо getLine, И тип и количество аргументов указаны неверно. Возможно, вы хотели использовать какую-то другую пользовательскую функцию getLine.

3

Содержание

  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 используется для включения в текущее пространство имён либо всех идентификаторов из указанного пространства имён, либо указанные идентификаторы. Когда идентификатор из другого пространства имён включается в текущее пространство имён, обращаться к нему можно без полной квалификации (т.е. без префикса названия пространства имён и :: ).

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

Источник

Here’s the code:

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

using namespace std;

int i, j, l, r1, r2, r3, n1, n2, n3, n4, rII, rIII;

string msg;

int rotor1[26] = { 4,10,12,5,11,6,3,16,21,25,13,19,14,22,24,7,23,20,18,15,0,8,1,17,2,9 };
int rotor2[26] = { 0,9,3,10,18,8,17,20,23,1,11,7,22,19,12,2,16,6,25,13,15,24,5,21,14,4 };
int rotor3[26] = { 1,3,5,7,9,11,2,15,17,19,23,21,25,13,24,4,8,22,6,0,10,12,20,18,16,14 };
int reflec[26] = { 24,17,20,7,16,18,11,3,15,23,13,6,14,10,12,8,4,1,5,25,2,22,21,9,0,19 };
char base[26] = { 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' };
void RotorInput() {
	cout << "Input initial positions (0 to 25):n";
	cout << "First rotor: ";
	cin >> r1;
	cout << "Second rotor: ";
	cin >> r2;
	cout << "Third rotor: ";
	cin >> r3;
}
void RotorInitialization() {
	rotate(rotor1, rotor1 + r1, rotor1 + 26);
	rotate(rotor2, rotor2 + r2, rotor2 + 26);
	rotate(rotor2, rotor2 + r2, rotor2 + 26);
}
void MessageInput() {
	cout << "Input your message/code:n";
	getline(cin, msg);
	getline(cin, msg);
}
void Encription() {
	l = msg.size();
	for (j = 0; j < l; j++) {

	}
	for (i = 0; i < l; i++) {

		if (msg.at(i) == ' ') {
			cout << " ";
		}
		else {
			int x = distance(base, find(base, base + 26, msg.at(i)));
			n1 = rotor1[x];
			n2 = rotor2[n1];
			n3 = rotor3[n2];
			n4 = reflec[n3];
			n3 = distance(rotor3, find(rotor3, rotor3 + 26, n4));
			n2 = distance(rotor2, find(rotor2, rotor2 + 26, n3));
			n1 = distance(rotor1, find(rotor1, rotor1 + 26, n2));
			cout << base[n1];

			rII = (i + r2 + 1) % 26;
			rIII = (i + r3 + 1) % 676;

			rotate(rotor1, rotor1 + 1, rotor1 + 26);

			if (rII == 0) {
				rotate(rotor2, rotor2 + 1, rotor2 + 26);
			}
			else {}

			if (rIII == 0) {
				rotate(rotor3, rotor3 + 1, rotor3 + 26);
			}
			else {}
		}
	}
}
int main()
{
	RotorInput();
	RotorInitialization();
	MessageInput();
	Encription();
	cout << endl;
	system("pause");
	return 0;
}

I’m using VS windows, my friend who coded this was using another program, and it worked, but not on mine… I’m going crazy!

почему компилятор пишет что
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;
}

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

Понравилась статья? Поделить с друзьями:
  • 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 слишком мало аргументов шаблон