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

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

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

Не правильно выводит структуру через функцию - C++

22.02.2013, 21:19. Просмотров 363. Ответов 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
#include <iostream>
using namespace std;
 
struct Worker {
    char fio[10];
    int date, code;
    float salary;
};
 
void print_worker(Worker);          // объявление функции
void add_worker(Worker);   
 
int main() {
    int c;
    Worker stuff[3];
    /*... формирование массива stuff */
 
    for (int i = 0; i < 3; i++)
    {
        add_worker(stuff[i]); 
 
    }
 
       for (int i = 0; i < 3; i++)
    {
        print_worker(stuff[i]);     // вызов функции
    }   
        
        cin>>c;
 
 
    return 0;
 
}
 
void print_worker(Worker w) {       // определение функции
    cout << w.fio << ' ' << w.date << ' ' << w.code << ' ' << w.salary;
}
 
void add_worker(Worker w) {       // определение функции
    cin >> w.fio >> w.date >> w.code >> w.salary;
}

Вопрос: почему не выводит то что я ввел, а выводит какие-то символы? Помогите разрешить проблему.
работаю в Visual C++ 2010
0
Миниатюры
Не правильно выводит структуру через функцию  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2013, 21:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не правильно выводит структуру через функцию (C++):

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

Задача через функцию (составить программу, которая по данному числу (1-12) выводит название соответствующего ему месяца) - C++
Задача 2 Составить программу, которая по данному числу (1-12) выводит название соответствующего ему месяца.

Ввод данных в структуру через указатель на структуру - C++
#include &quot;stdafx.h&quot; #include &quot;ctime&quot; #include &quot;iostream&quot; #pragma warning(disable : 4996) using namespace std; class...

Создать функцию, сортирующую данную структуру, и функцию для поиска нужного значения в структуре - C++
задание: Создать массив, элементами которого являются структуры – список журналов и газет (название, тираж, фамилия главреда, год...

Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN() - C++
а помогите теперь эту задачку #include &lt;iostream&gt; int main() { int last = 0, next = 1; long sum = 1; for(;...

Как правильно вписать функцию в h-файл и правильно её отразить в основной функции? - C++
Создать внешнюю библиотеку, в которой написана функция вывода символьного массива обратном порядке. Подключить данную библиотеку к ...

5
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 21:28 #2
C++
1
2
void add_worker(Worker&);
void print_worker(Worker&);
0
Tsynami
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 10
22.02.2013, 21:30  [ТС] #3
Исправил так как ты написал и выкинуло следующую ошибку:

1> LINK : не найден или не выполнена сборка C:\Documents and Settings\Администратор\Рабочий стол\Лабы по сишке\Структ\Debug\Структ.exe при последней инкрементной компоновке; выполняется полная компоновка
1>Структ.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl add_worker(struct Worker &)" (?add_worker@@YAXAAUWorker@@@Z) в функции _main
1>C:\Documents and Settings\Администратор\Рабочий стол\Лабы по сишке\Структ\Debug\Структ.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
0
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
22.02.2013, 21:30 #4
Вам нужно передавать адрес структуры внутрь функций, иначе создается копия внутри функции, вы с ней работаете, по выходу она уничтожается
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 21:35 #5
Цитата Сообщение от Tsynami Посмотреть сообщение
Исправил так как ты написал и выкинуло следующую ошибку:
Реализацию функций тоже нужно исправить.
C++
1
2
3
4
5
void add_worker(Worker &w) 
{       // определение функции
    cin >> w.fio >> w.date >> w.code >> w.salary;;
    
}
Добавлено через 2 минуты
Для print_worker() можно (по желанию) всё оставить как было в 1 посте. Для вывода это не страшно.
0
Tsynami
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 10
22.02.2013, 21:37  [ТС] #6
Всем огромное спасибо .все заработало!)
0
22.02.2013, 21:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2013, 21:37
Привет! Вот еще темы с ответами:

Как правильно задать структуру - C++
Как в &quot;trade tovar1&quot; правильно задать значения с массивов? #include &lt;iostream&gt; #include &lt;ctime&gt; //содержит time #include...

Как правильно объявить структуру - C++
Всем доброго времени суток.Есть задача:Составить программу формирования данных об успеваемости студентов по дисциплине: фамилия И.О., 5...

Выводит не правильно, почему? - C++
#include&quot;conio.h&quot; #include&quot;stdlib.h&quot; #include&quot;stdio.h&quot; #include&quot;math.h&quot; int main() { float x,y,r; r=0.1+x; printf(&quot;Input...

Не правильно выводит на экран - C++
Написал программу, которая должна перевернуть текст в обратном порядки но возникла проблема (например: qwerty должно вывести ytrewq ), не...


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

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

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