Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SgtLomzik
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 8
#1

Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов" - C++

12.05.2016, 15:22. Просмотров 254. Ответов 6
Метки нет (Все метки)

Надо передать из void main() в void user(string login) аргумент login,и далее,не упоминав его в user,передать в void calc(string login). Если сделать так,то calc просто не принимает login. Как это решить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2016, 15:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов" (C++):

Ошибка: "error C2660: getch: функция не принимает 1 аргументов" - C++
#include <stdio.h> #include <conio.h> #include <math.h> void main() {int i, n, x, fact, znak, y; printf ("VVedite n"); ...

Работа с классами С++. error C2660: "Функция не принимает 2 аргумента" - C++
Пытаюсь разобраться с классами. Не компилируется код, естественно ошибки) Так как работаю впервые то не знаю как исправить подскажите что...

Что значит ошибка error C2660: strcpy_s: функция не принимает 2 аргументов? - C++
Доброго времени суток! Вёл простенький код из книги Лафоре. Компилятор выдаёт ошибку error C2660: strcpy_s: функция не принимает 2...

Ошибка компиляции "функция не принимает 2 аргументов" - C++
Добрый вечер!Что не так в программе, почему функция error C2660: Res: функция не принимает 2 аргументов? #include <iostream> #include...

процедуры и функции С++(error C2660: input: функция не принимает 2 аргументов) - C++
ошибка: error C2660: input: функция не принимает 2 аргументов в 25-26 строке #include <cstdlib> #include <iostream> using...

Ошибка при компиляции:"C2955 "Tree": для использования класс шаблон требуется список аргументов шаблон" - C++
Есть класс бинарного дерева, в нем структура. Класс - Tree, структура - list(листик, а не список). При компиляции выдает...

6
Игорь1986
50 / 114 / 29
Регистрация: 08.09.2014
Сообщений: 1,024
Завершенные тесты: 1
12.05.2016, 15:30 #2
Смысл функции void user(string login) и параметра тогда
0
SgtLomzik
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 8
12.05.2016, 15:35  [ТС] #3
Игорь1986,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void user_user1(string login)
{
int a;
int b;
int act;
string pass;
    cout << "Введите пароль:" << endl;
    cin >> pass;
    if(pass=="123"){
        cout << "Введите значение a:" << endl;
        cin >> a;
        cout << "Введите значение b:" << endl;
        cin >> b;
        cout << "Вам доступны действия со значениями a и b:\n1 - сложить\n2 - вычетание" << endl;
        cout << endl;
        cin >> act;
        calc (act,a,b,login);
    }else{
        exit(1);
    }
}
И да,это калькулятор с логином/паролем и 3 пользователями.
0
mimicria
return (true);
1960 / 1097 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
12.05.2016, 16:20 #4
Цитата Сообщение от SgtLomzik Посмотреть сообщение
calc просто не принимает login
Что пишет? Я тут набросал, всё принимает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void calc(int act, int a, int b, string login)
{
 cout << login << endl;
}
 
void user(string login)
{
 //
 int a=2;
 int b=3;
 int act=1;
 string pass="123";
 calc(act,a,b,login);
}
 
int main()
{
 user("test");
 return 0;
}
0
SgtLomzik
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 8
12.05.2016, 18:07  [ТС] #5
mimicria, нет,не так. Вот очень сокращенная версия.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
 
void main ()
{
string login;
    cin >> login;
    if (login=="admin")
        user_admin(login);
}
 
void user_admin(string login)
{
calc(login);
}
 
void calc (int act,int a,int b,string login)
{
if(login=="admin"){}
}
Ошибки:
error C2660: calc: функция не принимает 3 аргументов
error C2660: calc: функция не принимает 3 аргументов
error C2660: calc: функция не принимает 3 аргументов

Добавлено через 6 минут
Ой,Только функции вперед main.

Добавлено через 18 минут
А,нет,только сейчас заметил в main строчку. Тогда видимо где-то у меня косяк. В общем выдает вот эту ошибку 3 раза:
error C2660: calc: функция не принимает 3 аргументов
error C2660: calc: функция не принимает 3 аргументов
error C2660: calc: функция не принимает 3 аргументов

Попробую сам поискать.
0
mimicria
return (true);
1960 / 1097 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
13.05.2016, 11:57 #6
Цитата Сообщение от SgtLomzik Посмотреть сообщение
calc: функция не принимает 3 аргументов
У вас функция calc описана с 4 параметрами (int act,int a,int b,string login), а вызывается всего с одним calc(login);, отсюда и ошибки
1
SgtLomzik
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 8
13.05.2016, 17:58  [ТС] #7
mimicria, нет,вчера я просто хотел сделать сокращенный вид кода,и много накосячил. В общем вот код полностью,все вызывается как положено (наверно),но ошибка все равно остается. Мб поможете разобраться.
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
 
void calc(string login,int act,int a,int b)
{
    if(login=="admin"){
        switch(act)
            {
                case 1:
                    {
                        cout << "Ответ: " << a + b << endl;
                        break;
                    }
                case 2:
                    {
                        cout << "Ответ: " << a - b << endl;
                        break;
                    }
                case 4:
                    {
                        cout << "Ответ: " << a / b << endl;
                        break;
                    }
                case 3:
                    {
                        cout << "Ответ: " << a * b << endl;
                        break;
                    }
                default:
                    cout << "Неверный знак,введите действие действие со значениями a и b:\n1 - сложить\n2 - вычетание\n3 - умножить\n4 - деление" << endl;
                    cin >> act;
                    calc (act,a,b);
                    }
    }if(login=="user1"){
        switch(act)
            {
                case 1:
                    {
                        cout << "Ответ: " << a + b << endl;
                        break;
                    }
                case 2:
                    {
                        cout << "Ответ: " << a - b << endl;
                        break;
                    }
                default:
                    cout << "Неверный знак,введите действие действие со значениями a и b:\n1 - сложить\n2 - вычетание\n3 - умножить\n4 - деление" << endl;
                    cin >> act;
                    calc (act,a,b);
                    }
    }if(login=="user2"){
        switch(act)
            {
                case 4:
                    {
                        cout << "Ответ: " << a / b << endl;
                        break;
                    }
                case 3:
                    {
                        cout << "Ответ: " << a * b << endl;
                        break;
                    }
                default:
                    cout << "Неверный знак,введите действие действие со значениями a и b:\n1 - сложить\n2 - вычетание\n3 - умножить\n4 - деление" << endl;
                    cin >> act;
                    calc (act,a,b);
                    }
    }
}
void user_user1(string login)
{
int a;
int b;
int act;
string pass;
    cout << "Введите пароль:" << endl;
    cin >> pass;
    if(pass=="123"){
        cout << "Введите значение a:" << endl;
        cin >> a;
        cout << "Введите значение b:" << endl;
        cin >> b;
        cout << "Вам доступны действия со значениями a и b:\n1 - сложить\n2 - вычетание" << endl;
        cout << endl;
        cin >> act;
        calc(login,act,a,b);
    }else{
        exit(1);
    }
}
 
void user_admin(string login)
{
int a;
int b;
int act;
string pass;
    cout << "Введите пароль:" << endl;
    cin >> pass;
    if(pass=="123"){
        cout << "Введите значение a:" << endl;
        cin >> a;
        cout << "Введите значение b:" << endl;
        cin >> b;
        cout << "Выберите действие со значениями a и b:\n1 - сложить\n2 - вычетание" << endl;
        cout << endl;
        cin >> act;
        calc (login,act,a,b);
    }else{
        exit(1);
    }
}
 
void user_user2(string login)
{
int a;
int b;
int act;
string pass;
    cout << "Введите пароль:" << endl;
    cin >> pass;
    if(pass=="123"){
        cout << "Введите значение a:" << endl;
        cin >> a;
        cout << "Введите значение b:" << endl;
        cin >> b;
        cout << "Вам доступны действия со значениями a и b:\n3 - умножить\n4 - деление" << endl;
        cout << endl;
        cin >> act;
        calc (login,act,a,b);
    }else{
        exit(1);
    }
}
 
void main ()
{
string pass;
string login;
    setlocale(0, "");
    cout << "Введите логин:" << endl;
    cin >> login;
    if (login=="admin")
        user_admin(login);
    if (login=="user1")
        user_user1(login);
    if (login=="user2")
        user_user2(login);
    else{
        cout << "Пользователь не найден!\n";
        main();
        }
}
Добавлено через 1 минуту
Мда,только отправил - сразу нашел косяк. Ну хоть так... Все,откопмпилировалось.
0
13.05.2016, 17:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2016, 17:58
Привет! Вот еще темы с ответами:

Ошибка "при попытке сопоставить список аргументов" - C++
программа : #include &lt;iostream&gt; #include &lt;conio.h&gt; using std::endl; using std::cin; using std::cout;

Ошибка "в вызове функции отсутствует список аргументов" при работе с классами - C++
Учусь работать с классами С++ но часто встречаюсь с ошибкой: c:\program files (x86)\microsoft visual studio...

функция не принимает 3 аргументов,в чём ошибка? - C++
// лаба 6.1.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt;...

Проверяю, являются ли 4 строки стихом. "й" принимает за "и", тем самым принимает за слог - C++
Суть программы: банальная проверка на то, являются ли 4 строки стишком. Метод решения задачи: равное кол-во слогов и одинаковые последние...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru