Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 17

Ошибки "system" is ambiguous и identifier "_getch" is undefined

12.01.2017, 11:55. Показов 4733. Ответов 10

Студворк — интернет-сервис помощи студентам
Здравствуйте! Нужна помощь с кодом. В чем заключаются ошибки и как их исправить, или чем заменить:? Подскажите, пожалуйста.

---main код---

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
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string>
#include <ctype.h>
#include "add.h"
 
 
using namespace std;
 
char path[] = "test.txt";
mebel meb;
 
int main()
{
    
    char ch_key;
 
    bool bMENU = true;
    
    mebst open(std::string & test);
    do
    {
        cout << "***MENU***\n";
        cout << "1 - Add 1\n";
        cout << "2 - View 1\n";
        cout << "3 - Sort 1\n";
        cout << "ESC - Exit\n";
 
        switch (ch_key = _getch())
        {
        case '1':
        {
            {
                void write(mebst, mebel & record);
            }
        }
        break;
        case '2':
        {
            {
                mebel *read(mebst & store, mebel & buffer);
            }
        }
        break;
        case '3':
        {
            {
                mebel *find(mebst & store, std::string & name, mebel & buffer);
            }
        }
        break;
        case 27:
        {
            bMENU = false;
            cout << "Exit from program\n";
        }   break;
        }
        void close(mebst & store);
    } while (bMENU);
 
    system("pause");
    //return 0;
}
---add.h---

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
#pragma once
//ДОБАВЛЕНИЕ
 
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string>
#include <ctype.h>
 
using namespace std;
 
#ifndef ADD_H
#define ADD_H
 
typedef struct mebel
{
    char name[12];
    int price, props, number;
} mebel, *meb;
 
typedef std::fstream mebst;
 
mebst open(std::string & test);
mebel *read(mebst & store, mebel & buffer);
 
void write(mebst, mebel & record);
 
mebel *find(mebst & store, std::string & name, mebel & buffer);
void close(mebst & store);
 
#endif // ADD_H
//
---sss.cpp---(исполняющий add.h)

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
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string>
#include <ctype.h>
#include "add.h"
 
using namespace std;
 
mebst open(std::string & test)
{
    mebst store;
    store.open(test);
    store.seekp(0, std::ios_base::end);
    return store;
}
 
mebel * read(mebst & store, mebel & buffer) //чтение
{
    if (store.eof()) {
        return 0;
    }
    std::getline(store, buffer.name); //из файла
    store
        >> buffer.price
        >> buffer.props
        >> buffer.number;
    store.ignore(256, '\n');
    return &buffer;
}
 
void write(mebst & store, mebel & record) // запись
{
    store
        << record.name << std::endl
        << record.price << " "
        << record.props << " "
        << record.number << std::endl;
}
 
mebel * find(mebst & store, std::string & name, mebel & buffer) { //поиск
    while (read(store, buffer)) {
        if (buffer.name == name) {
            return &buffer;
        }
    }
    return 0;
}
void close(mebst & store) {
    store.close();
}
и что делать с "no instance of overloaded function "std::getline" matches the argument list" тоже не понимаю.
C++
1
std::getline(store, buffer.name);
Выручайте
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.01.2017, 11:55
Ответы с готовыми решениями:

Ошибки "identifier "WM_USER"(LPSCROLLINFO,NMHDR,DLGPROC,LPCDLGTEMPLATE,LPSTARTUPINFOW.) is undefined"
Внезапно, после создания нового проекта и добавления в него кода возникли ошибки: - identifier &quot;WM_USER&quot; is undefined в файле...

[C++ Error] Unit1.cpp(24): E2268 Call to undefined function 'getch'
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #include &lt;iostream.h&gt; #pragma...

Identifier is undefined
начал писать триггербот для кс го нужен был сурс ProcMem.cpp и хейдер ProcMem.h всё было. вообщем начал писать и тут такая проблема...

10
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.01.2017, 12:09
C++
1
2
#include <cstdlib>
#include <conio.h>
1
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 17
12.01.2017, 14:20  [ТС]
Спасибо, но ошибка с std::getline осталась
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.01.2017, 14:34
А если попробовать
C++
1
mebel * read(std::istream& store, mebel & buffer)
Добавлено через 20 секунд
Не забудьте поменять в объявлении и в определении.
1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
12.01.2017, 14:39
Второй параметр std::getline должен быть типа std::string, а ты передаёшь массив char. Предлагаю заменить char name[12] на std::string name.
2
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 17
12.01.2017, 16:32  [ТС]
Ничего не выходит. Ошибка та же no instance of overloaded function "std::getline arguments type are: (mebst, char[12])
При замене char name[12] на std::string name, ошибка такая no instance of overloaded function "std::getline arguments type are: (mebst, std::string [12]).
И появляется ошибка no operator "==" matches these operands в if (buffer.name == name).
Уже не могу что-то придумать...месяц уже борюсь со всей этой бодягой
Может есть другие способы устранить ошибку:?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.01.2017, 16:38
Лучший ответ Сообщение было отмечено savera как решение

Решение

Цитата Сообщение от savera Посмотреть сообщение
no instance of overloaded function "std::getline arguments type are: (mebst, std::string [12]).
Вы сделали
C++
1
string name[12];
А надо было
C++
1
string name;
string по сути уже содержит в себе символьный массив.
1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
12.01.2017, 16:43
Цитата Сообщение от savera Посмотреть сообщение
ошибка такая no instance of overloaded function "std::getline arguments type are: (mebst, std::string [12]).
Откуда здесь string[12]? Как выглядит строка с этой ошибкой, и какой тип имеют аргументы getline?
0
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 17
12.01.2017, 17:18  [ТС]
MrGluck, спасибо большое. Все скомпилировалось)))
0
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 17
13.01.2017, 17:37  [ТС]
MrGluck, выручайте опять(
Программа открывает меню, но в меню ни один пункт не работает. Можете подсказать в чем проблема? Функции, вроде, объявлены правильно, могу и ошибаться.
Миниатюры
Ошибки "system" is ambiguous и identifier "_getch" is undefined  
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
14.01.2017, 23:51
Вы зачем-то объявляете прототипы функций в case блоках, при этом добавляя локальный scope.
Это всё полный бред. Нужно вызывать соответствующие функции, передавая им список аргументов.

C++
1
2
3
void foo(const int x); // объявление прототипа функции, x - параметр
void foo(const int x) {} // реализация функции
foo(42); // вызов функции с аргументом 42
Добавлено через 40 секунд
Вам нужно прочитать литературу, вы не понимаете самые основы. Бессмысленно объяснять вам каждый элемент языка.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.01.2017, 23:51
Помогаю со студенческими работами здесь

Ошибка identifier is undefined
Доброго всем времени суток дело такое, надо было написать в C++ программу, которая бы в конечном итоге решала дифференциальное...

Undefined identifier в коде для STM32F406VG
Добрый день. Я изучаю программирование STM контроллеров и на данный момент писал учебный проект с дисплеем и микросхемой ds3231 но при...

Ошибки Call to undefined function и Undefined index: disabled
помогите разобратьcz, уже много что перепробовал ни могу исправить Call to undefined function App\Http\Controllers\array_prepend()...

Ошибка cannot generate system identifier for general entity
Подскажите как исправить эту ошибку: &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;...

Аналог getch или русские буквы в getch
Здравствуйте, уважаемые господа. Существуют ли какие-нибудь аналоги getch () и _getch, которые не требуют ввода какого-либо другого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru