Форум программистов, компьютерный форум CyberForum.ru

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

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

C++ процедуры и функции С++(error C2660: input: функция не принимает 2 аргументов)
C++ Функция не принимает 1 аргументов
Функция не принимает 0 аргументов C++
C++ Функция не принимает 5 аргументов
Функция не принимает 0 аргументов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Игорь1986
34 / 98 / 24
Регистрация: 08.09.2014
Сообщений: 844
Завершенные тесты: 1
12.05.2016, 15:30     Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов" #2
Смысл функции void user(string login) и параметра тогда
SgtLomzik
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 8
12.05.2016, 15:35  [ТС]     Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов" #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 пользователями.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
12.05.2016, 16:20     Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов" #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;
}
SgtLomzik
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 8
12.05.2016, 18:07  [ТС]     Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов" #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 аргументов

Попробую сам поискать.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
13.05.2016, 11:57     Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов" #6
Цитата Сообщение от SgtLomzik Посмотреть сообщение
calc: функция не принимает 3 аргументов
У вас функция calc описана с 4 параметрами (int act,int a,int b,string login), а вызывается всего с одним calc(login);, отсюда и ошибки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2016, 17:58     Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов"
Еще ссылки по теме:

функция не принимает 3 аргументов,в чём ошибка? C++
C++ Ошибка компиляции "функция не принимает 2 аргументов"
C++ Работа с классами С++. error C2660: "Функция не принимает 2 аргумента"

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

Или воспользуйтесь поиском по форуму:
SgtLomzik
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 8
13.05.2016, 17:58  [ТС]     Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов" #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 минуту
Мда,только отправил - сразу нашел косяк. Ну хоть так... Все,откопмпилировалось.
Yandex
Объявления
13.05.2016, 17:58     Ошибка при передача аргумента: "C2660: calc: функция не принимает 3 аргументов"
Ответ Создать тему
Опции темы

Текущее время: 06:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru