|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.02.2020, 22:47 | #1 |
Форумчанин
Регистрация: 20.12.2016
Сообщений: 270
|
Массивы в функции
Добрейшего времени суток, начал практиковаться, решил написать небольшую программку, что бы интерпретировать, например MENU, в красивый заголовок в консоле. Но на начальном этапе словил затуп, не могу подружить массивы и функции, я вроде передаю массив как параметр, в аргументах тоже поакзал, что это массив - всё равно ошибка. Выручайте, где я потерял логику...
#include <iostream> namespace constH { const char headerA[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerB[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerC[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerD[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerE[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerF[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerG[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerH[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerI[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerJ[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerK[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerL[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerM[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerN[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerO[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerP[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerQ[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerR[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerS[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerT[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerU[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerV[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerW[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerX[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerY[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerZ[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; const char headerHelp[5] = { 0x18, 0x24, 0x24, 0x7E, 0x81 }; } //Получаем букву и заполняем её внешнее отображение в соответствующую часть массива char updateTextMassive(int i, const char letter[], char newTextMassive[][]) { for (int j = 0; j < 5; j++) { newTextMassive[j][i] |= letter[j]; } return newTextMassive; } //Выводим написанный текст в качестве заголовка для консоли void outputCharHeader(char textMassiv[], int sizeX) { char newTextMassive[5][sizeX]; for (int i = 0; i < sizeX; i++) { switch (static_cast<int>(textMassiv[i])) { case 65: updateTextMassive(i, constH::headerA[], newTextMassive); break; case 66: updateTextMassive(i, constH::headerB, newTextMassive); break; case 67: updateTextMassive(i, constH::headerC, newTextMassive); break; case 68: updateTextMassive(i, constH::headerD, newTextMassive); break; case 69: updateTextMassive(i, constH::headerE, newTextMassive); break; case 70: updateTextMassive(i, constH::headerF, newTextMassive); break; case 71: updateTextMassive(i, constH::headerG, newTextMassive); break; case 72: updateTextMassive(i, constH::headerH, newTextMassive); break; case 73: updateTextMassive(i, constH::headerI, newTextMassive); break; case 74: updateTextMassive(i, constH::headerJ, newTextMassive); break; case 75: updateTextMassive(i, constH::headerK, newTextMassive); break; case 76: updateTextMassive(i, constH::headerL, newTextMassive); break; case 77: updateTextMassive(i, constH::headerM, newTextMassive); break; case 78: updateTextMassive(i, constH::headerN, newTextMassive); break; case 79: updateTextMassive(i, constH::headerO, newTextMassive); break; case 80: updateTextMassive(i, constH::headerP, newTextMassive); break; case 81: updateTextMassive(i, constH::headerQ, newTextMassive); break; case 82: updateTextMassive(i, constH::headerR, newTextMassive); break; case 83: updateTextMassive(i, constH::headerS, newTextMassive); break; case 84: updateTextMassive(i, constH::headerT, newTextMassive); break; case 85: updateTextMassive(i, constH::headerU, newTextMassive); break; case 86: updateTextMassive(i, constH::headerV, newTextMassive); break; case 87: updateTextMassive(i, constH::headerW, newTextMassive); break; case 88: updateTextMassive(i, constH::headerX, newTextMassive); break; case 89: updateTextMassive(i, constH::headerY, newTextMassive); break; case 90: updateTextMassive(i, constH::headerZ, newTextMassive); break; default: updateTextMassive(i, constH::headerHelp, newTextMassive); } } } int main() { int sizeX{ 10 }; char textMassiv[sizeX]; std::cin >> textMassiv; outputCharHeader(textMassiv, sizeX); return 0; }
формошлеп.рф
witech.su |
28.02.2020, 08:45 | #2 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 966
|
в постановке задачи. Лично я не понимаю, что тут требовалось сделать, ТЗ непонятное
Но телепаты подсказывают, что начало было бы примерно такое Код:
|
28.02.2020, 08:48 | #3 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 966
|
могу предположить, что это растр литеры. Только отчего он везде одинаковый
Код:
|
28.02.2020, 11:37 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,551
|
Это что - тренинг телепатов ?
|
28.02.2020, 13:49 | #5 |
Форумчанин
Регистрация: 20.12.2016
Сообщений: 270
|
Ахахах, нет, а что непонятного? я же написал, не доделал, столкнулся с проблемой.
------ Попытаться скомпилить код на своей стороне это телепаты вам не подсказали? У меня прога не компилится, потому что, что то не так с массивами при передачи в функцию, я не могу допереть.
формошлеп.рф
witech.su Последний раз редактировалось maks1331; 28.02.2020 в 13:51. |
29.02.2020, 08:40 | #6 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 966
|
maks1331, компилятор желает знать размерность передаваемого массива. Вот телепаты и подсказывают - используй вектора
либо передавай указатель на первый элемент массива, а далее в аргументах - все нужные размерности С векторами это всё удобнее и гибче |
09.09.2020, 10:50 | #7 |
Форумчанин
Регистрация: 20.12.2016
Сообщений: 270
|
Спасибо всем за ответы. Я пришел к тому, что мой уровень владения языком был слишком низок для решения такой задачи. Т.к. я продолжил изучать язык, сейчас я смог написать эту программу. Всем, кому интересно, выкладываю её код .
т.к. символов больше 8000, заливаю .txt файл. Буду благодарен за конструктивную оценку и критику кода!
формошлеп.рф
witech.su |
09.09.2020, 14:01 | #8 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 966
|
maks1331,
самое первое, что я сделал бы: вот это Код:
Это позволит также избавиться от дикого свича , заменив его на несколько строк |
11.09.2020, 09:46 | #9 |
Форумчанин
Регистрация: 20.12.2016
Сообщений: 270
|
Программа не чистит динамически выделенную память)
Я знаю, что лучше не использовать С-style строки, заменив их std::string. В программе цикл проходит по каждому символу строки + определяет её размер, как это можно улучшить?
формошлеп.рф
witech.su |
11.09.2020, 12:56 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Массивы, функции, С++ | Eddi_Brown | Помощь студентам | 3 | 24.03.2014 09:15 |
Массивы и функции | tutty123 | Помощь студентам | 0 | 06.12.2012 02:57 |
Массивы, функции СИ | Redbbt | Помощь студентам | 1 | 08.10.2012 23:46 |
С++ массивы и функции. | Jenkins | Помощь студентам | 15 | 28.02.2012 23:41 |
Функции и массивы. | 3.14rojoke | Общие вопросы C/C++ | 1 | 14.04.2010 15:32 |