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

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

Войти
Регистрация
Восстановить пароль
 
Visary_Master
-154 / 16 / 4
Регистрация: 01.12.2010
Сообщений: 297
#1

Как правильно передать уникальный аргумент в функцию - C++

06.10.2011, 11:58. Просмотров 408. Ответов 2
Метки нет (Все метки)

Здравствуйте! Помогите пожалуйста в решении такой проблемы:
Есть структура, она должна хранить в себе строку, и уникальный символ.
В главной функции есть функция, которая должна принимать структуру с уникальным символом и строкой.
Вопрос, как это организовать?
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
#include <iostream>
using namespace std;
 
struct thread_arg
{
    char *str;
    //char *key; // Не могу сообразить, как тут сделать
};
void someFunc(char key)
{
    cout << key << endl;
}
int main()
{
    struct thread_arg targ;
    int n = 10;
    for (int i=0; i<n; i++)
    {
               // Нужно здесь сделать так, чтобы при разном i передавался разный уникальный символ.
        targ.key = (char *)'a'; 
        someFunc(&targ);
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2011, 11:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно передать уникальный аргумент в функцию (C++):

Как правильно передать массив в функцию? - C++
Возникла такая загвоздка: написал три функции для работы с массивом. Вроде всё компилирует, кроме вызова этих функций, а конкретнее при...

Как правильно передать объект fstream в функцию - C++
При использовании следующего подхода возникают вопросы: int myFunc(fstream&amp; data); 1. Если я открою поток из функции, можно ли его...

Как правильно передать в функцию указатель на двумерный массив? - C++
Сабж #include &lt;windows.h&gt; #include &lt;stdio.h&gt; using namespace std; //ОТ безысходности сделал матрицу глобальной int A = {2,...

Указатели и матрицы: как правильно передать матрицу в функцию? - C++
Здравствуйте! Во время того, как переписывал программу функциями возникла проблема, а именно: массив просто так не передается в функцию. ...

Как правильно передать массив объектов пользовательского типа в функцию? - C++
Доброго всем, пишу впервые пишу огромную программу - игру и столкнулся с проблемой, которую так сам и не могу решить. Нужно передать массив...

Как правильно передать объект в функцию при использовании многопоточности - C++
Добрый день, форум! Возникла вот такая задача: Есть два класса: класс А, реализующий интегрирование функции, и класс В, реализующий...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
-=ЮрА=-
Заблокирован
Автор FAQ
06.10.2011, 12:20 #2
Цитата Сообщение от Visary_Master Посмотреть сообщение
Здравствуйте! Помогите пожалуйста в решении такой проблемы:
Есть структура, она должна хранить в себе строку, и уникальный символ.
В главной функции есть функция, которая должна принимать структуру с уникальным символом и строкой.
Вопрос, как это организовать?
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
#include <iostream>
#include <conio.h>
using namespace std;
 
struct somestruct
{
    long lVal;
    char sVal[33];//Строка из 32 символов
    char chUnique;//Какой то там уникальный сингл чар
    //Ну и хватит с аргументами, при желании их можно добавить
};
 
void InitStruct(somestruct &p);//Инициализируем структуру
void ShowStruct(somestruct p);//Выводим поля структуры на экран
 
int main()
{
    somestruct test;
    do
    {
        InitStruct(test);
        ShowStruct(test);
        std::cout<<"Press Y for new input\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
 
void InitStruct(somestruct &p)
{
    std::cout<<"Enter struct fields\r\n";
    std::cout<<"lVal : ";std::cin>>p.lVal;
    std::cout<<"sVal : ";std::cin>>p.sVal;
    std::cout<<"chUnique : ";std::cin>>p.chUnique;
}
 
void ShowStruct(somestruct p)
{
    std::cout<<"See fields of struct\r\n";
    std::cout<<"lVal : "<<p.lVal<<"\r\n";
    std::cout<<"sVal : "<<p.sVal<<"\r\n";
    std::cout<<"chUnique : "<<p.chUnique<<"\r\n";
}
Миниатюры
Как правильно передать уникальный аргумент в функцию  
-=ЮрА=-
06.10.2011, 12:24     Как правильно передать уникальный аргумент в функцию
  #3

Не по теме:

PS:Visary_Master, на сколько я понял вы столкнулись с проблеммой инициализации структуры в теле функции, а верней как сохранить в полях присвоенные в теле значанения, это делается при помощи передаче параметра по ссылке

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
void InitStruct(somestruct &p)
- обратите внимание на символ & - это позволит при таком вызове в программе
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
InitStruct(test);
сохранять присвоенные полям в теле функции значания
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
std::cout<<"Enter struct fields\r\n";
* * * * std::cout<<"lVal : ";std::cin>>p.lVal;
* * * * std::cout<<"sVal : ";std::cin>>p.sVal;
* * * * std::cout<<"chUnique : ";std::cin>>p.chUnique;

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 12:24
Привет! Вот еще темы с ответами:

Нюансы работы с массивами: как правильно передать массив в функцию в качестве аргумента? - C++
Здравствуйте!!!Начал недавно изучать с++ и с по книге!!!там есть пример и возник небольшой вопрос к нему!Скину весь код, чтобы было...

Как правильно передать динамический массив в функцию, увеличивающую его размер, чтобы изменения сохранились - C++
Извиняюсь за совсем нубский вопрос, похожее не нашел. Простая учебная задача - написать функцию, которая добавляет элемент в динамический...

как передать аргумент в качестве массива - C++
Ребята нужно использовать алгоритм Quicksort, сам алгоритм есть и работает и есть динамический массив до начала сортировки, но вот как...

Правильно передать значение указателя в функцию - C++
Всем привет. Есть функция, которая имеет параметром ссылку, а есть указатель, который надо передать в функцию. То есть, void...


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

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

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