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

Корректный код под C++ - C++

Восстановить пароль Регистрация
 
El_cucumber
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 4
11.03.2014, 20:29     Корректный код под C++ #1
Господамы, недавно начал изучать C++ И в одном из задачников столкнулся со следующим заданием, необходимо написать старую запоминалку про фазана где каждое слово будет начинаться с новой строки и каждое новое слово будет обозначаться соответствующем цветом радуги, используя рекомендации из того же задачника добавив к ним обновленные знания о C++ получил я следующий код
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
#include <iostream>
#include <conio.h>
using namespace std;
 
void main(){
    setlocale (LC_CTYPE, "Russian");
    clrscr();
    textcolor (RED);
    cprintf ("Каждый \n\r");
    textcolor (ORANGE);
    cprintf ("Охотник \n\r");
    textcolor (YELLOW);
    cprintf ("Желает \n\r");
    textcolor (GREEN);
    cprintf("Знать \n\r");
    textcolor (LIGHTBLUE);
    cprintf("Где \n\r");
    textcolor (BLUE);
    cprintf ("Сидит \n\r");
    textcolor (MAGENTA);
    cprintf ("Фазан \n\r");
 
    system("pause");
    return 0;
}
И тут стало очевидно что conio.h категорически не хочет работать, из-за чего компилятор в Microsoft visual studio выдал мне кучу ошибок на тему
1>.\main.cpp(7) : error C3861: clrscr: идентификатор не найден
1>.\main.cpp(8) : error C2065: RED: необъявленный идентификатор
1>.\main.cpp(8) : error C3861: textcolor: идентификатор не найден
1>.\main.cpp(9) : error C3861: cprintf: идентификатор не найден
И тд, собственно, вопрос!
Как изменить код так, чтобы максимально правильно усвоить полученные знания, то есть сделать код наиболее приближенным к тому что сделал я, но все-таки работающим в 2014 году)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2014, 20:29     Корректный код под C++
Посмотрите здесь:

C++ Переделайте код под Visual
C++ не корректный вывод из файла
изменить код visual studio под Borland C++ C++
Корректный ввод с cin C++
Не корректный вывод данных C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.03.2014, 20:48     Корректный код под C++ #2
На MVS пишите? вот тут не все так просто. Вот пример:
Цветные символы в консоли.
DrOffset
6450 / 3824 / 885
Регистрация: 30.01.2014
Сообщений: 6,618
11.03.2014, 20:54     Корректный код под C++ #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
El_cucumber, под windows можно так:
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
#include <cstdio>
#include <clocale>
#include <windows.h>
 
void clrscr(HANDLE console);
 
enum
{
    RED       = FOREGROUND_RED | FOREGROUND_INTENSITY
  , ORANGE    = FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY
  , YELLOW    = FOREGROUND_GREEN | FOREGROUND_RED
  , GREEN     = FOREGROUND_GREEN | FOREGROUND_INTENSITY
  , LIGHTBLUE = FOREGROUND_BLUE | FOREGROUND_INTENSITY | FOREGROUND_GREEN
  , BLUE      = FOREGROUND_BLUE | FOREGROUND_INTENSITY | FOREGROUND_BLUE
  , MAGENTA   = FOREGROUND_BLUE | FOREGROUND_INTENSITY | FOREGROUND_RED
};
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
 
    clrscr(console);
 
    SetConsoleTextAttribute(console, RED);
    printf("Каждый \n\r");
    SetConsoleTextAttribute(console, ORANGE);
    printf("Охотник \n\r");
    SetConsoleTextAttribute(console, YELLOW);
    printf("Желает \n\r");
    SetConsoleTextAttribute(console, GREEN);
    printf("Знать \n\r");
    SetConsoleTextAttribute(console, LIGHTBLUE);
    printf("Где \n\r");
    SetConsoleTextAttribute(console, BLUE);
    printf("Сидит \n\r");
    SetConsoleTextAttribute(console, MAGENTA);
    printf("Фазан \n\r");
    SetConsoleTextAttribute(console, FOREGROUND_INTENSITY);
 
    system("pause");
    return 0;
}
 
void clrscr(HANDLE console)
{
    COORD topLeft  = { 0, 0 };
    CONSOLE_SCREEN_BUFFER_INFO screen;
    DWORD written;
 
    GetConsoleScreenBufferInfo(console, &screen);
    FillConsoleOutputCharacterA(
        console, ' ', screen.dwSize.X * screen.dwSize.Y, topLeft, &written
    );
    FillConsoleOutputAttribute(
        console, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE,
        screen.dwSize.X * screen.dwSize.Y, topLeft, &written
    );
    SetConsoleCursorPosition(console, topLeft);
}
El_cucumber
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 4
11.03.2014, 21:12  [ТС]     Корректный код под C++ #4
Мне казалось что C++ был создан как оптимизированный и во многом упрощенный C
Outmee
 Аватар для Outmee
2 / 2 / 0
Регистрация: 26.01.2014
Сообщений: 56
11.03.2014, 21:20     Корректный код под C++ #5
оффтоп
Кликните здесь для просмотра всего текста
К консоли это не распространяется
DrOffset
6450 / 3824 / 885
Регистрация: 30.01.2014
Сообщений: 6,618
11.03.2014, 21:28     Корректный код под C++ #6
Цитата Сообщение от El_cucumber Посмотреть сообщение
Мне казалось что C++ был создан как оптимизированный и во многом упрощенный C
Упрощенный С? С++ так то гораздо сложнее, чем С. В добавок данный пример практически идентично будет выглядеть на С, почти 1 в 1.

Но в любом случае судить по использованию библиотек о языке крайне некорректно. Это просто пример рисования цветом на конкретной платформе (windows), с использованием конкретных средств (win api). На другой платформе данное действие выглядело бы по-другому. Важно понимать, что рисование цветом - это системный инструментарий, который отличается о системы к системе. А язык везде одинаковый.
El_cucumber
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 4
11.03.2014, 21:38  [ТС]     Корректный код под C++ #7
А код который я в шапке указал для какой системы/IDE Будет корректен? Согласно учебнику 13-ого года, он по-идее правильный, но вот что интересно, на какую систему и среду он рассчитан нигде не указано))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2014, 21:49     Корректный код под C++
Еще ссылки по теме:

Класс под клиентский код C++
Не корректный вывод C++
Переделать код под Visual studio, С++ C++

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

Или воспользуйтесь поиском по форуму:
DrOffset
6450 / 3824 / 885
Регистрация: 30.01.2014
Сообщений: 6,618
11.03.2014, 21:49     Корректный код под C++ #8
El_cucumber, скорее всего это DOS и IDE Borland C++ 3.x.
Функция cprintf еще есть в POSIX, только смысл у нее не тот, что в твоем примере.
Yandex
Объявления
11.03.2014, 21:49     Корректный код под C++
Ответ Создать тему
Опции темы

Текущее время: 00:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru