Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 55

Ошибка в выводе экран

03.07.2016, 18:17. Показов 1234. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,такая проблема когда пишу вывод всех сотрудников той же функции где я с ними заполняю массив,то все выводится нормально,но когда переношу вывод в отдельную функцию,выводится какая-то жесть всякие символы и разный мусор,не понимаю почему так происходит , прошу помогите , спасибо заранее

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
#include <iostream>
using namespace std;
 
struct Coworkokers
{
    char workersName[30];
    char workersLastName[30];
    char birthDate[30];
};
 
void enterWorkersData(Coworkokers*coworker)
{
    int dataProgrammBegin;
    coworker = new Coworkokers[2];
    
 
    cout << "\n\nThis is coworkers data programm!\n" << endl;
    cout << "==============================================" << endl;
    cout << "\n1-Begin the programm,2-exit the programm: ";
    cin >> dataProgrammBegin;
 
    while ((dataProgrammBegin != 1) && (dataProgrammBegin != 2))
    {
        cout << "ERROR: false value,try again: " << endl;
        cin >> dataProgrammBegin;
    }
    if (dataProgrammBegin == 1)
    {
        for (int i = 0; i < 2; i++)
        {
            system("cls");
            cout << "The number of coworker:" << i + 1 << endl;
 
            cout << "\nPlease enter the name  coworker:\n " << endl;
            cin >> coworker[i].workersName;
            cin.ignore();
 
            cout << "\nPlease enter coworker last name:\n " << endl;
            cin >> coworker[i].workersLastName;
            cin.ignore();
 
            cout << "\nPlease enter the birthdate of the coworker:\n " << endl;
            cin >> coworker[i].birthDate;
            cin.ignore();
            system("cls");
        }
    }
    
    else if (dataProgrammBegin == 2)
    {
        exit(0);
    }
 
}
 
 
void showAllWorkers(Coworkokers*coworker,int n)
{
    
    coworker = new Coworkokers[2];
 
    int enterDataValue;
    cout << "\nDo you want to show all  data of the coworker: 1-show,2-exit\n" << endl;
    cin >> enterDataValue;
 
    while ((enterDataValue != 1) && (enterDataValue != 2))
    {
        cout << "ERROR: false value,try again: " << endl;
        cin >> enterDataValue;
    }
    if (enterDataValue == 1)
    {
        for (int i = 0; i < n; i++)
        {
 
            cout << "______________________________________________" << endl;
            cout << "\nName: " << coworker[i].workersName << endl;
            cout << "\nLastname: " << coworker[i].workersLastName << endl;
            cout << "\nBirthdate: " << coworker[i].birthDate << endl;
        }
    }
}
 
void main()
{
    int const SIZE_COWORKERS = 2;
    Coworkokers myArray[SIZE_COWORKERS];
    
    enterWorkersData(myArray);
    showAllWorkers(myArray,2);
 
}
то что выводится
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.07.2016, 18:17
Ответы с готовыми решениями:

Ошибка в выводе сообщения на экран
Как вывести на экран сообщение в виде слова, а не цифры? #include &lt;iostream&gt; using namespace std; int main() { while(true) ...

Ошибка при выводе на экран
#include &lt;iostream&gt; using namespace std; int main() { int j =100; while (j &lt;= 110); cout &lt;&lt; endl &lt;&lt; j++; return 0; ...

win32api странности при выводе на экран
Доброго времени суток. Возникла проблема: при использовании в цикле TextOut на экран выводится только одна первая цифра, считанная из...

3
 Аватар для Armatus
56 / 56 / 44
Регистрация: 24.03.2016
Сообщений: 378
03.07.2016, 18:30
Лучший ответ Сообщение было отмечено Lazariev_V как решение

Решение

нужно закомментировать (удалить ) выделение динамической памяти, и будет вам счастье.

Добавлено через 3 минуты
C++
1
coworker = new Coworkokers[2];
убрать, в обоих функциях, так как выделение памяти для массива объектов уже произошло в void main().
1
 Аватар для HenryDukart
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
03.07.2016, 18:34
Lazariev_V,

Не надо выделять память:

C++
1
coworker = new Coworkokers[2];
У вас же статический массив, который вы передается как аргумент функциям. Уберите эту строку из функций, и у вас все заработает.
1
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 55
03.07.2016, 18:48  [ТС]
Большое спасибо , вы очень помогли!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.07.2016, 18:48
Помогаю со студенческими работами здесь

Теряються поля при выводе на экран
Здравствуйте. Помогите найти ошибку #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;values.h&gt; ...

При выводе на экран появляются лишние символы
#include &lt;iostream&gt; // ??? printf #include &lt;string.h&gt; // ??? strtok bool IsPalindrom (char *word) { int i = -1; int j =...

Как сделать, чтобы при выводе на экран были пробелы
#include &lt;iostream&gt; using namespace std; int main() { int sum = 0, val = 1; while (val &lt;= 10) { sum += val; ++val; ...

Ошибка в выводе
У меня в ответе в моей таблице 2 и 3 столбы не равны а должны быть равны Условие: Значение аргумента x меняется от a до b с шагом h....

Ошибка в выводе
Помогите найти ошибку! Почему то выводит 2 раза фразу введите размер массива, когда второй раз проходит программу #include...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru