Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
1

Передача переменной в функцию void

31.05.2010, 13:08. Просмотров 3513. Ответов 9
Метки нет (Все метки)

Вопрос такой, получаю значение переменной w, например w, будет равно 1. Это значение нужно передать в функцию с координатами.


C
1
rightq(w); // Передаем
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
void rightq(int w) // получаем 
{
consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 29;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    cout<<"5 - 1 000";
 
    consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 30;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    cout<<"4 - 500";
 
    consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 31;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    cout<<"3 - 300";
 
    consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 32;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    cout<<"2 - 200";
 
    consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 33;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    cout<<"1 - 100";
 
cout<<w;
 
}
Суть в том, что эта W будет позднее окрашивать нужный пункт. Но для начала, хочу ее просто вывести на экран...

Ловлю ошибку: функция не принимает 1 аргументов

Как я понял, это из-за того что в функции отсутствует тип данных, возможно ли в данную функцию передать переменную?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2010, 13:08
Ответы с готовыми решениями:

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

Реализовать аналог `void *memmove(void *to, void *from, size_t n)`
Добрый день, подскажите пожалуйста, как реализовать такой метод самостоятельно? который копирует...

Указатель void в функцию
Уважаемые форумчане подскажите такой вопрос, имеется некая функция на вход надо передать указатель...

Написать функцию поиска максимального элемента для массива типа void
#include &lt;stdio.h&gt; #include&lt;conio.h&gt; #include &lt;stdlib.h&gt; unsigned int fmax( int*a, unsigned...

Ошибка: error C2143 функция void deleteEnd(void)
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;string.h&gt; #include&lt;conio.h&gt; #define MAXNAME 56...

9
vladislavchick
35 / 35 / 8
Регистрация: 22.05.2010
Сообщений: 107
31.05.2010, 13:16 2
Конечно, возможно.
1
nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
31.05.2010, 13:24  [ТС] 3
а как это реализовать?)

Добавлено через 1 минуту
Собственно полностью функция выглядит вот так, нужно только получить передать в нее W

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
void rightq()
{
int w = 1; // Это нужно получить в функцию 
consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 29;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    if(w == 5){
    GetConsoleScreenBufferInfo (hstdout, & csbi);
    SetConsoleTextAttribute(hstdout,0x27);
    cout<<" 5 - 1 000 ";
    SetConsoleTextAttribute(hstdout, csbi.wAttributes);
    } else 
    {cout<<" 5 - 1 000 ";}
 
 
 
    consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 30;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    if(w == 4){
    GetConsoleScreenBufferInfo (hstdout, & csbi);
    SetConsoleTextAttribute(hstdout,0x27);
    cout<<" 4 - 500 ";
    SetConsoleTextAttribute(hstdout, csbi.wAttributes);
    } else 
    {cout<<" 4 - 500 ";}
 
 
 
    consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 31;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    if(w == 3){
    GetConsoleScreenBufferInfo (hstdout, & csbi);
    SetConsoleTextAttribute(hstdout,0x27);
    cout<<" 3 - 300 ";
    SetConsoleTextAttribute(hstdout, csbi.wAttributes);
    } else 
    {cout<<" 3 - 300 ";}
 
 
 
    consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 32;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    if(w == 2){
    GetConsoleScreenBufferInfo (hstdout, & csbi);
    SetConsoleTextAttribute(hstdout,0x27);
    cout<<" 2 - 200 ";
    SetConsoleTextAttribute(hstdout, csbi.wAttributes);
    } else 
    {cout<<" 2 - 200 ";}
 
 
 
    consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 33;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
    if(w == 1){
    GetConsoleScreenBufferInfo (hstdout, & csbi);
    SetConsoleTextAttribute(hstdout,0x27);
    cout<<" 1 - 100 ";
    SetConsoleTextAttribute(hstdout, csbi.wAttributes);
    } else 
    {cout<<" 1 - 100 ";}
 
    
}
0
Sekt
157 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 637
31.05.2010, 13:27 4
Цитата Сообщение от nepster Посмотреть сообщение
нужно только получить передать в нее W
Так?Если нет то можете подробнее пояснить
C
1
2
3
4
5
6
7
8
9
10
void func(int *w)
{
 *w = 1;
}
main()
{
int x = 2; 
func(&x);
std::cout<<x;
}
1
neske
1529 / 896 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
31.05.2010, 13:27 5
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
void rightq(int w=1)
{
consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 29;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
        if(w == 5){
        GetConsoleScreenBufferInfo (hstdout, & csbi);
        SetConsoleTextAttribute(hstdout,0x27);
        cout<<" 5 - 1 000 ";
        SetConsoleTextAttribute(hstdout, csbi.wAttributes);
        } else 
        {cout<<" 5 - 1 000 ";}
 
 
 
        consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 30;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
        if(w == 4){
        GetConsoleScreenBufferInfo (hstdout, & csbi);
        SetConsoleTextAttribute(hstdout,0x27);
        cout<<" 4 - 500 ";
        SetConsoleTextAttribute(hstdout, csbi.wAttributes);
        } else 
        {cout<<" 4 - 500 ";}
 
 
 
        consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 31;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
        if(w == 3){
        GetConsoleScreenBufferInfo (hstdout, & csbi);
        SetConsoleTextAttribute(hstdout,0x27);
        cout<<" 3 - 300 ";
        SetConsoleTextAttribute(hstdout, csbi.wAttributes);
        } else 
        {cout<<" 3 - 300 ";}
 
 
 
        consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 32;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
        if(w == 2){
        GetConsoleScreenBufferInfo (hstdout, & csbi);
        SetConsoleTextAttribute(hstdout,0x27);
        cout<<" 2 - 200 ";
        SetConsoleTextAttribute(hstdout, csbi.wAttributes);
        } else 
        {cout<<" 2 - 200 ";}
 
 
 
        consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
    cursorPos.X = 65;
    cursorPos.Y = 33;
    SetConsoleCursorPosition(consoleOutput, cursorPos);
        if(w == 1){
        GetConsoleScreenBufferInfo (hstdout, & csbi);
        SetConsoleTextAttribute(hstdout,0x27);
        cout<<" 1 - 100 ";
        SetConsoleTextAttribute(hstdout, csbi.wAttributes);
        } else 
        {cout<<" 1 - 100 ";}
 
        
}
??
1
nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
31.05.2010, 20:18  [ТС] 6
neske

Значение, W я получаю в функции main в цикле, изначально я не знаю чему она будет равна...

Sekt
Ну то есть смотрите, в цикле генерируется число, оно записывается в переменную W. (изначально я мы не знаем чему оно будет равно. Ну для примера пусть будет 4)

Имеется функция rightq() в которую число 4 нужно передать. То есть мы получили число 4, записали в w. (w=4)

Теперь w мы должна передать в функцию так, что бы в rightq() сработала проверка

C
1
2
3
4
5
6
7
 if(w == 5){
        GetConsoleScreenBufferInfo (hstdout, & csbi);
        SetConsoleTextAttribute(hstdout,0x27);
        cout<<" 5 - 1 000 ";
        SetConsoleTextAttribute(hstdout, csbi.wAttributes);
        } else 
        {cout<<" 5 - 1 000 ";}
0
neske
1529 / 896 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
31.05.2010, 20:30 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
void func (int w)
{
    //
}
 
int main ()
{
    int w=5;
    //
    //
    func(w);
}
1
accept
4835 / 3257 / 464
Регистрация: 10.12.2008
Сообщений: 10,569
01.06.2010, 03:32 8
Цитата Сообщение от nepster
Ловлю ошибку: функция не принимает 1 аргументов
прототип видимо не написал

C++
1
void rightq(int);
над вызовом в main(), в самой main() можно, но обычно пишут снаружи, после #include
1
taras atavin
4206 / 1773 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
01.06.2010, 05:25 9
Цитата Сообщение от nepster Посмотреть сообщение
в функции отсутствует тип данных
возвращаемых, а тип параметра есть.
1
nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
01.06.2010, 20:20  [ТС] 10
спасибо, я понял в чем была ошибка, я забыл дописать void rightq(int w); в файл в который выносил функции
0
01.06.2010, 20:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2010, 20:20

Возможна ли инициализация связного списка в функции void (void)?
Всем привет. В связи с полученным в универе заданием возник вопрос, а возможна ли в принципе...

Передача значения переменной
Здравствуйте, нужно передать значение одной переменной в другую для дальнейшего использования. Вот...

Передача нетипизованной переменной функции
Дан некоторый заголовок функции. Допустим, так: void func(void a, unsigne int b); Надо...


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

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

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