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

Символ пробел

31.01.2019, 09:01. Показов 6884. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Как сделать так, чтобы символ пробела сделать клавишей для перехода? Т.е., у меня есть тест. Он выводит задание, пользователь вводит ответ и дальше при нажатии пробела должен быть сгенерирован новый тест. Что получается у меня: при нажатии пробела, вводится сам пробел. Прилагаю кусочек кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char blank = 's';
    while (blank != ' ') { // вот тут условие для ввода пробела
        int choise = 3; 
        switch (choise) {
        case 1: {
            cout << "Summa" << endl;
            string firstOctal = B.toOctal(1);
            string secondOctal = B.toOctal(2);
            cout << firstOctal << " + " << secondOctal << endl;
            string s;
            cout << "True answer is " << B.Summa() << endl;
            cout << "Your answer pls = ";
            cin >> s;
            if (s != B.Summa()) {
                cout << "Error answer!" << endl;
            }
            else
                cout << "Success!" << endl;
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.01.2019, 09:01
Ответы с готовыми решениями:

Заменить символ табуляции на пробел.
Помогите, пожалуйста! Никак не могу понять, где ошибка? Задача: если при вводе был введен символ табуляции, то при выводе надо его...

Исключить из заданного текстового файла символы-разделители (пробел, символ табуляции), расположенных в середи
Помогите пожалуйста исправить! Очень срочно! Исключить из заданного текстового файла символы-разделители (пробел, символ табуляции),...

Изъять комментарии и добавить вместо них символ "пробел"
В языке паскаль комментарии записываются в фигурных скобках: begin {начало цикла } i:=i+1;{ увеличиваем i на 1} Написать программу на...

13
 Аватар для COKPOWEHEU
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,888
31.01.2019, 10:13
Зачем вы приводите ветку switch, которая никогда не выполниться? Что мы с ней должны делать?
Использования переменной blank тоже не видно.
0
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
31.01.2019, 10:20
Цитата Сообщение от JenFlower Посмотреть сообщение
int choise = 3;
* * * * switch (choise) {
* * * * case 1: {
Это никогда не сработает.
0
0 / 0 / 0
Регистрация: 05.05.2018
Сообщений: 20
31.01.2019, 10:37  [ТС]
Я же написала, что это КУСОЧЕК кода! Вопрос был не в этом, а в пробеле. Я просто показала вам, в каком случае должен использоваться пробел, а вы к коду докопались...
Там целый класс реализован. Не буду же я сюда все присылать!
Даже комментарий написала и указала, где используется переменная blank.
0
 Аватар для COKPOWEHEU
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,888
31.01.2019, 11:27
Вы показали кусочек кода, который не относится к делу. Что еще мы по нему должны сказать?
Лучше напишите минимальную программу, на которой воспроизводится ошибка и выложите ее сюда чтобы мы могли просто скопировать к себе, скомпилировать и воспроизвести.
0
 Аватар для Cortas
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
31.01.2019, 18:13
Предполагаю, что автор хотел получить символ с клавиатуры без подтверждения клавишей enter, как это происходит при обычном считывании информации с консоли, используя cin.
Такая возможность реализуется библиотекой conio.h, функцией _getch();
вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <conio.h>
#include <iostream>
 
int main()
{
    char in;
    do
    {
        in = _getch(); //или _getch(in);
        std::cout << "Symbol from keyboard: \'" << in << "\'\n";
    }while(in != 'e');
    return 0;
}
0
31.01.2019, 18:28

Не по теме:

Цитата Сообщение от jugu Посмотреть сообщение
int choise = 3;
* * * * switch (choise) {
* * * * case 1: {
как же надоели строки в виде звездочек в цитатах! надо в баги форума сообщить.

0
0 / 0 / 0
Регистрация: 05.05.2018
Сообщений: 20
31.01.2019, 20:36  [ТС]
Спасибо, хоть кто-то понял. А с пробелом так же? Он и в моем случае читает любые символы, кроме пробела
0
 Аватар для Cortas
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
31.01.2019, 21:26
Цитата Сообщение от JenFlower Посмотреть сообщение
А с пробелом так же?
Со всеми символами должен работать одинаково:
Название: Screenshot_1.png
Просмотров: 109

Размер: 4.1 Кб
Там, где "пустота" и есть пробел. Можете даже условие добавить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <conio.h>
#include <iostream>
 
int main()
{
    char in;
    do
    {
        in = _getch(); //или _getch(in);
        std::cout << "Symbol from keyboard: \'" << in << "\'";
        if(in == ' ') std::cout << " Oh my, it's SPACE!! )*0*("
        std::cout << std::endl;
    }while(in != 'e');
    return 0;
}
0
 Аватар для COKPOWEHEU
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,888
01.02.2019, 09:43

Не по теме:

Цитата Сообщение от VsdMax Посмотреть сообщение
как же надоели строки в виде звездочек в цитатах! надо в баги форума сообщить.
Как вам удается их получать? Ни при простом копировании, ни при цитировании они не появляются.


Цитата Сообщение от JenFlower Посмотреть сообщение
Спасибо, хоть кто-то понял.
Учитесь внятно формулировать вопрос, чтобы не пришлось угадывать.
Цитата Сообщение от Cortas Посмотреть сообщение
#include <conio.h>
В современных программах такое использовать не стоит: эта библиотека еще со времен DOS и не переносимая.
0
 Аватар для Cortas
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
01.02.2019, 09:55
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
эта библиотека еще со времен DOS и не переносимая.
Понимаю, стоило бы ещё добавить то, что она, если я конечно не ошибаюсь, работает только под винду, что тоже не очень приятно. В любом случае, было бы неплохо найти замену (конечно можно взять win32, но не особо хочется с ней возится учитывая простоту _getch()). Кстати, у меня уже была тема о некорректной работе данной функции, такие дела. (бывает лучше работает _getwch())
0
 Аватар для COKPOWEHEU
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,888
01.02.2019, 12:25
Цитата Сообщение от Cortas Посмотреть сообщение
она, если я конечно не ошибаюсь, работает только под винду, что тоже не очень приятно
Еще под тот же самый DOS. Собственно, об этом я и писал что она непереносимая.
Если хочется использовать полноценный консольный обмен, с окошками, перемещением курсора и т.п. то посмотрите в сторону ncurses, если просто раз в год сделать запрос без нажатия enter лучше перепроверить, а так ли оно нужно.
1
 Аватар для Cortas
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
01.02.2019, 15:12
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
посмотрите в сторону ncurses
Хм, спасибо, гляну как-нибудь
0
 Аватар для COKPOWEHEU
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,888
01.02.2019, 15:49
Если при чтении описаний встретите утверждение что она Lin-only - не верьте. А если захотите просто посмотреть чуть-чуть подробнее, вот тут на форуме ее ковыряли.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2019, 15:49
Помогаю со студенческими работами здесь

Вставить после каждого символа «.» один символ « » (пробел), если после точки нет пробела.
Вставить после каждого символа «.» один символ « » (пробел), если после точки нет пробела. Как сделать так, чтоб между точкой и...

Каждую группу из n последовательно стоящих символов ‘’ (пробел) и '\t' (табуляция) заменить на один пробел
Каждую группу из n последовательно стоящих символов ‘’ (пробел) и '\t' (табуляция) заменить на один пробел

В строке заменить пробел между слов на запятую и пробел
В строке заменить пробел между слов на запятую и пробел

Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_»
День добрый. Имеется условие лабы. Написать программу, в которой с клавиатуры вводится до 10 символьных строк. Вывести строки, в...

вывести символы в следующем порядке: первй символ из входного файла, последний символ, второй символ, предпоследний смвл
Дан файл in.txt, содержащий текст. Требуется вывести в файл out.txt символы в следующем порядке: первый символ из входного файла, последний...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru