Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Ney4
8 / 8 / 0
Регистрация: 28.10.2011
Сообщений: 100
1

Помогите с парой вопросов по С++

07.11.2011, 23:51. Просмотров 2578. Ответов 35
Метки нет (Все метки)

Всё связано с консольными приложениями

1) После получения результата программа пишет "нажмите любую клавишу". После нажатия она закрывается. Как сделать, чтобы программа повторялась с самого начала (перед этим спрашивая о повторении) ?

2) Можно ли сделать так, чтобы введенные тобой символы не отображались в окне программы? А просто считывались после нажатия Enter?

3) Как изменить размер шрифта?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2011, 23:51
Ответы с готовыми решениями:

Помогите с парой прог на C
1. Известны три натуральных числа, характеризующие данный момент времени: часы,...

плз помогите написать любой тест на 20 вопросов (курсовая)
любые 20 вопросов и чтобы в конце показывала кол-во набранных балов

Класс «Номер телефона», проблема с парой функций
Есть задание (ниже). Я сделал всё из обоих пунктов, но функции Out_All...

Поле шахматной доски определяется парой натуральных чисел
Поле шахматной доски определяется парой натуральных чисел, первое из которых...

Определить двузначное число, образованное парой цифр, в которую входит k-я цифра.
Доброго времени суток! В С++ недавно, но в универе уже задали такие задачи: ...

35
LostCoast
82 / 82 / 24
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
08.11.2011, 00:09 2
Цитата Сообщение от Ney4 Посмотреть сообщение
1) После получения результата программа пишет "нажмите любую клавишу". После нажатия она закрывается. Как сделать, чтобы программа повторялась с самого начала (перед этим спрашивая о повторении) ?
заключить основной код программы в функции main в цикл(например do while), которая будет повторятся до нажатия определенной кнопки, которая будет в условии while.(надеюсь вы знаете циклы, очень надеюсь)
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
int main() {
 char ch;
 do {
   std::cout << "write char = ";
   std::cin >> ch;
 } while ( ch != 'q') ;
 return 0;
}

Цитата Сообщение от Ney4 Посмотреть сообщение
3) Как изменить размер шрифта?
в dos окне? по моему никак.
0
Ney4
8 / 8 / 0
Регистрация: 28.10.2011
Сообщений: 100
08.11.2011, 00:22  [ТС] 3
Спасибо.
Нет, циклов я пока не знаю (только недавно начал изучать С++), но я почитаю о них и сделаю как вы написали
0
LostCoast
82 / 82 / 24
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
08.11.2011, 00:24 4
Ney4, без цикла тут никак не обойтись, так что учи)
на счет второго пукта немного непонял, ты хочешь чтобы после ввода данных экран окна очищался? и выводился на пустом экране ответ?
0
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
08.11.2011, 00:37 5
Цитата Сообщение от Ney4 Посмотреть сообщение
2) Можно ли сделать так, чтобы введенные тобой символы не отображались в окне программы? А просто считывались после нажатия Enter?
Есть функция _gectch(); , которая возвращает код веденного символа , а веденный символ в консоли не отображается.
0
Ney4
8 / 8 / 0
Регистрация: 28.10.2011
Сообщений: 100
09.11.2011, 17:09  [ТС] 6
У меня с getch не получается.

В программе написано, что если Е будет 10, то нужно выполнять одно действие, если Е будет 9, то выполнять другое действие. Во всех остальных случаях писать "неверное число".
Я вместо cin<<E пишу в коде E = getch () . Но когда вводишь 10 или 9, всё равно выводит сообщение "неверное число". Как быть?

Добавлено через 1 час 32 минуты
помогите
0
lexflax
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 627
09.11.2011, 17:21 7
Цитата Сообщение от Ney4 Посмотреть сообщение
getch ()
getch это кажется вообще функция задержки экрана...
а если хочешь чтоб если ввел 10 или 9 то попробуй через if сделать тоесть
C++
1
2
3
4
5
cin>> ch;
if (ch==10)
cout << "deistvie kotoroe tebe nugno";
if (ch==9) 
cout <<"drugoe deistvie" Else cout << "nevernoe chislo
если помогло жми спасибо +1
0
Ney4
8 / 8 / 0
Регистрация: 28.10.2011
Сообщений: 100
09.11.2011, 17:26  [ТС] 8
Так у меня if и есть сейчас Просто мне нужно чтобы когда я вводил 9 или 10, эти цифры не выводились на экран. А просто считывались (желательно после нажатия enter)
0
lexflax
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 627
09.11.2011, 17:28 9
ну может тогда дело в том что тебе подсказывали функцию
_gectch() а ты использовал функцию getch?
0
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,674
Записей в блоге: 12
09.11.2011, 18:20 10
Цитата Сообщение от Ney4 Посмотреть сообщение
1) После получения результата программа пишет "нажмите любую клавишу". После нажатия она закрывается. Как сделать, чтобы программа повторялась с самого начала (перед этим спрашивая о повторении) ?
можно грубо и не по стандарту рекурсией функции main

Добавлено через 1 минуту
Цитата Сообщение от Ney4 Посмотреть сообщение
Так у меня if и есть сейчас Просто мне нужно чтобы когда я вводил 9 или 10, эти цифры не выводились на экран. А просто считывались (желательно после нажатия enter)
тут с win api можно связать
0
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
09.11.2011, 18:24 11
Цитата Сообщение от lexflax Посмотреть сообщение
getch это кажется вообще функция задержки экрана...
Нет. Это функция ввода символа.
getch() это же самое, что и _getch().

Добавлено через 30 секунд
Цитата Сообщение от lexflax Посмотреть сообщение
_gectch()
Такой функции нет

Добавлено через 27 секунд
Цитата Сообщение от Ney4 Посмотреть сообщение
Как быть?
Покажите полностью код. Мы тут не телепаты.
0
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,674
Записей в блоге: 12
09.11.2011, 18:24 12
Цитата Сообщение от Ney4 Посмотреть сообщение
2) Можно ли сделать так, чтобы введенные тобой символы не отображались в окне программы? А просто считывались после нажатия Enter?
есть ещё функция get с какимто извращённым окончанием она не выводит символ но и не тормозит программу и функция getch тоже не выводит символ но тормозит программу
0
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
09.11.2011, 18:25 13
Цитата Сообщение от Van111 Посмотреть сообщение
getch тоже не выводит символ но тормозит программу
Бред. getch() - функция ввода символа.
0
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,674
Записей в блоге: 12
09.11.2011, 18:27 14
Цитата Сообщение от Ney4 Посмотреть сообщение
3) Как изменить размер шрифта?
тут по ходу тока win api
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.11.2011, 18:31 15
Цитата Сообщение от Ney4 Посмотреть сообщение
1) После получения результата программа пишет "нажмите любую клавишу". После нажатия она закрывается. Как сделать, чтобы программа повторялась с самого начала (перед этим спрашивая о повторении) ?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <setjmp.h>
 
int main()
{
    jmp_buf env;
    setjmp(env);
    
        //some code...
 
    char ch;
    printf("Repeat? [y\\n]: ");
    scanf("\n%c", &ch);
    
    if ( ch == 'y' || ch == 'Y' )
        longjmp(env, 0);
                
    return 0;
}
0
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
09.11.2011, 18:35 16
diagon
Зачем так сложно, если можно на много проще?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
    char answer = 'y';
    
    do
    {
        std::cout << "Repeat? y/n\n";
        std::cin >> answer;
    }while( answer == 'y' || answer == 'Y' );
    return 0;
}
1
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,674
Записей в блоге: 12
09.11.2011, 18:40 17
Цитата Сообщение от Chelioss Посмотреть сообщение
Бред. getch() - функция ввода символа.
а я не спорю я говорю что она не выводит символа при его нажатие
0
Ney4
8 / 8 / 0
Регистрация: 28.10.2011
Сообщений: 100
09.11.2011, 19:02  [ТС] 18
Chelioss, неудобно весь код писать, я с оперы мини
0
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
09.11.2011, 19:07 19
Цитата Сообщение от Ney4 Посмотреть сообщение
Chelioss, неудобно весь код писать, я с оперы мини
А как мы тогда узнаем, почему у вас _getch() не работает?
А вообще есть одно предположение.
Допустим, у вас перед вызовом _getch() был ввод данных с помощью cin >>.
Дело в том, что когда вводишь данные с помощью cin >> надо нажать на Enter, а это символ перехода на новую строку.
cin читает все символы кроме символов перехода на новую строку/пробела/еще каких-то спец символов, т.е. после чтения остается в потоке ввода символ перехода на новую строку.
И как раз вы функцией _getch() читаете этот символ, ибо функция _getch() читает любые символы, т.е. ничего не игнорирует. Вам надо после cin >> написать cin.ignore(), либо два раза написать _gecth(), чтобы в первый раз прочитать символ перехода на новую строку, а второй раз считать число.
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.11.2011, 19:17 20
Цитата Сообщение от Chelioss Посмотреть сообщение
diagon
Зачем так сложно, если можно на много проще?
Да там не особо сложнее.
С циклом менее удобно, имхо.
0
09.11.2011, 19:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2011, 19:17

Разработать класс (Объект «рациональная дробь, представлен парой целых чисел»)
Составить описание класса. Определить конструктор по умолчанию, конструктор с...

Разработать класс (Объект «рациональная не сократимая дробь, представлен парой целых чисел»)
Разработать класс, набор методов (конструктор, деструктор и указанные методы)...

Найти наиболее и наименее удаленные точки. Вычисление расстояния между парой точек оформить функцией
Даны координаты N точек на плоскости в виде маccивов X и Y. Найти наиболее и...


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

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

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