Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nezgibaem
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 9
#1

Ввод и вывод в СИ++ Как? - C++

14.04.2014, 19:26. Просмотров 980. Ответов 12
Метки нет (Все метки)

Всем привет. Люди, такая проблема. Знаю функцию getche(), которая напрямую, без использования клавиши энтер, выводит нажатую клавишу в консольном приложении типа такого
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
#include "stdafx.h"
#include <stdio.h> 
#include <ctype.h> 
#include <conio.h>
#include "iostream"
 
 
void main(void) 
{
    setlocale(0,"");
int letter,v;
v=0;
printf("Продолжить? (Y/N): ");
do {
    if(v==0)
        v=v+1;
    else
        printf("Все еще продолжать?");
letter = getche ();
letter = toupper (letter);
     }
while ((letter != 'Y') && (letter != 'N') );
 
if (letter == 'Y' )
    printf("\nВы ответили ДА (Y) \n ");
else
    printf("\nВы ответили НЕТ (N) \n ");
getch();
}
Но если в этой программе нажать, скажем, стрелку, то он выдаст какую-то абра -кадабру, а как этого избежать? Если, скажем, мне нужны стрелки для того, что бы передвигатся по вводимому числу и местами править его, как это можно сделать?

Добавлено через 13 минут
Т.е. что бы вы поняли, представьте, вот консольный ввод, вот передо мной строка ввода и ввожу число 1234, вдруг я ошибся, и ввести мне надо 1324. Вот я нажимаю на клавиатуре стрелки, что бы переместиться на нужные цифры. удалить их и ввести новые. Методами cin и scanf эта проблема разрешима, они принимают enter как символ это меня не устраивает, мне нужно все это реализовать прямым вводом getche(), или
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2014, 19:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод и вывод в СИ++ Как? (C++):

Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод - C++
Добрый день! Помогите, пожалуйста, с программой. Программа считывает строку с клавиатуры и переводит её в двоичный код. затем наоборот...

Поменять консольный ввод-вывод на файловый ввод-вывод - C++
вот у меня калькулятор как мне сделать что б числа вводились из файла и результат записывался в новый файл ? // ОБРАТНАЯ...

Запись выражений, ввод–вывод информацииЗапись выражений, ввод–вывод информации - C++
Задача 2.1. Пользуясь только операцией умножения, вычислить (A в 7-ой степени) за четыре операции. Задача 2.2. Очистить экран,...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур - C++
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг) не выводит на экран? Само задание: О каждой книге ...

Как правильно организовать файловый ввод/вывод? - C++
setlocale(LC_ALL,&quot;russian&quot;); double x; ifstream fin; fin.open(&quot;input.txt&quot;); fin&gt;&gt;tochnost&gt;&gt;x&gt;&gt;x&gt;&gt;x; ...

Правильное понимание того, как работает ввод вывод в С++ - C++
Начал изучать тему ввода-вывода данных. Сделал схему, посмотрите ее пожалуйста, посмотрите каким образом все взаимосвязано, и скажите...

12
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
14.04.2014, 19:37 #2
Извини, но я ничего не понял.
C++
1
letter = getch();
И что? Что не так у тебя? Все работает.
0
Nezgibaem
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 9
14.04.2014, 21:34  [ТС] #3
Все работает. Согласен. Сложное число сможешь ввести, а потом его перепечатать по новой?
0
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
14.04.2014, 21:37 #4
Нет, я могу вести только одну цифру, так как
C++
1
letter = getch();
на это и рассчитана.
0
Nezgibaem
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 9
14.04.2014, 21:55  [ТС] #5
И это тоже верно. Я спрашиваю как ввести сложное число с последующей возможностью перепечатывания. Кажется именно это я спрашивал. Или, хотя бы, посоветуйте ЛЮБУЮ ФУНКЦИИ ВВОДА, которую вы пожелаете, что бы она не воспринимала символы стрелок и энтер, как заносимые в переменную символы.

Добавлено через 6 минут
Просто люди как-то пишут текстовые редакторы, ворд, Блокнот, им же как-то удается переводить каретку в строке. Мне то же самое нужно - перевести каретку в консольной строке нажатием стрелок и ввести несколько символов, всего несколько, строго определенных, что бы не было ничего паразитного.
0
XRuZzz
Антикодер
689 / 595 / 29
Регистрация: 15.09.2012
Сообщений: 2,542
14.04.2014, 22:18 #6
да любую книгу откройте из списка Литература C++
и вы увидите что в основном используются потоки ввода вывода std::cin std::cout, а не устаревшие printf
0
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
14.04.2014, 22:20 #7
Цитата Сообщение от Nezgibaem Посмотреть сообщение
Просто люди как-то пишут текстовые редакторы
А при чем тут консоль? Они пишут на ООП, там чуть по другому, и уж там не консоль.
Кстати, вроде Ворд не был написан на С++, а был написан на .NET
0
XRuZzz
Антикодер
689 / 595 / 29
Регистрация: 15.09.2012
Сообщений: 2,542
14.04.2014, 22:21 #8
Цитата Сообщение от Nezgibaem Посмотреть сообщение
Просто люди как-то пишут текстовые редакторы, ворд, Блокнот, им же как-то удается переводить каретку в строке. Мне то же самое нужно - перевести каретку в консольной строке нажатием стрелок и ввести несколько символов, всего несколько, строго определенных, что бы не было ничего паразитного.
эти люди прочитали от одной книги по C++ и больше
0
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
14.04.2014, 22:21 #9
Цитата Сообщение от XRuZzz Посмотреть сообщение
увидите что в основном используются потоки ввода вывода
Это понятно Он что-то другое требует, а точнее, сделать редактор в консоле
Я может еще немного голову поломаю, может что и напишу
0
XRuZzz
Антикодер
689 / 595 / 29
Регистрация: 15.09.2012
Сообщений: 2,542
14.04.2014, 22:45 #10
Цитата Сообщение от Nezgibaem Посмотреть сообщение
Или, хотя бы, посоветуйте ЛЮБУЮ ФУНКЦИИ ВВОДА, которую вы пожелаете, что бы она не воспринимала символы стрелок и энтер, как заносимые в переменную символы.
специально пошарился по инету, нашёл достаточно примеров исходников такого редактора, все делают стандартно - считывают один символ, после чтения обрабатывают его и перерисовывают весь экран.

конечно все реализации достаточно ужасны.
вот пример на switch
C++
1
2
3
4
5
6
while (1) {
  ch = wgetch(stdscr);
  if (ch == KEY_F(10)) break;
/* Обрабатываем кнопки. В кейсах (case) устанавливаем все переменные, а после
   switch выводим результат на экран.                                         */
  switch (ch) {
однако, я рекомендую шире использовать возможности C++ и разбивать программу на множество классов, файлов и т п... для этого нужно читать литературу.

Добавлено через 6 минут
и не надо забывать про функцию getline
1
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
15.04.2014, 07:59 #11
Цитата Сообщение от XRuZzz Посмотреть сообщение
множество классов
Это уже ООП, как я понял, человеку с ним не больно хочется связываться.
0
XRuZzz
Антикодер
689 / 595 / 29
Регистрация: 15.09.2012
Сообщений: 2,542
15.04.2014, 11:56 #12
Цитата Сообщение от Ярослав Никитин Посмотреть сообщение
Это уже ООП, как я понял, человеку с ним не больно хочется связываться.
То есть ему не хочется связываться с книгами по C++ программируя на C++? Как следствие - ему не хочется связываться с C++?
0
DrOffset
15.04.2014, 12:10     Ввод и вывод в СИ++ Как?
  #13

Не по теме:

Цитата Сообщение от Ярослав Никитин Посмотреть сообщение
Кстати, вроде Ворд не был написан на С++, а был написан на .NET
Для справки, пакету MS Office вообще и Word в частности гораздо больше лет, чем .NET фреймфорку, который был разработан только к 2002 году

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 12:10
Привет! Вот еще темы с ответами:

Как реализовать ввод/вывод текста на русском языке? - C++
Вечер добрый, друзья. Вот только что зарегистрировался, т.к. уже нет сил бороться с одной проблемой. Перерыл весь cyberforum, но так и не...

Как реализовать ввод адреса файла и соответственно вывод - C++
Нужно, чтобы программа спрашивала название файла, который нужно открыть, подразумеваю(1.txt), а так же куда сохранить изменения,...

Как организовать Буферизированный ввод вывод стурктуры в текстовый файл? - C++
Подскажите, как организовать Буферизированный ввод вывод стурктуры в текстовый файл? Буду признателен, если приведете какой нибудь пример.

Как осуществить такую программу где ввод и вывод будет на одной строке? - C++
Допустим у меня есть такой код int main() { int a,b; scanf(&quot;%i&quot;,&amp;a); printf(&quot;+&quot;); scanf(&quot;%i&quot;, &amp;b); printf(&quot;=%i&quot;, a + b);...


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

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

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