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

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

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

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

14.04.2014, 19:26. Просмотров 943. Ответов 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(), или
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2014, 19:26     Ввод и вывод в СИ++ Как?
Посмотрите здесь:

Как правильно организовать файловый ввод/вывод? - 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++
Нужно, чтобы программа спрашивала название файла, который нужно открыть, подразумеваю(1.txt), а так же куда сохранить изменения,...

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

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

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

Как поместить строки разной длинны в двумерный массив? (файловый ввод/вывод) - C++
Всем доброго времени суток! Есть файл с нескольким количеством строк и все эти строки разной длинны, как мне их поместить в двумерный...

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

Добавлено через 6 минут
Просто люди как-то пишут текстовые редакторы, ворд, Блокнот, им же как-то удается переводить каретку в строке. Мне то же самое нужно - перевести каретку в консольной строке нажатием стрелок и ввести несколько символов, всего несколько, строго определенных, что бы не было ничего паразитного.
XRuZzz
Антикодер
657 / 558 / 27
Регистрация: 15.09.2012
Сообщений: 2,509
14.04.2014, 22:18     Ввод и вывод в СИ++ Как? #6
да любую книгу откройте из списка Литература C++
и вы увидите что в основном используются потоки ввода вывода std::cin std::cout, а не устаревшие printf
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
14.04.2014, 22:20     Ввод и вывод в СИ++ Как? #7
Цитата Сообщение от Nezgibaem Посмотреть сообщение
Просто люди как-то пишут текстовые редакторы
А при чем тут консоль? Они пишут на ООП, там чуть по другому, и уж там не консоль.
Кстати, вроде Ворд не был написан на С++, а был написан на .NET
XRuZzz
Антикодер
657 / 558 / 27
Регистрация: 15.09.2012
Сообщений: 2,509
14.04.2014, 22:21     Ввод и вывод в СИ++ Как? #8
Цитата Сообщение от Nezgibaem Посмотреть сообщение
Просто люди как-то пишут текстовые редакторы, ворд, Блокнот, им же как-то удается переводить каретку в строке. Мне то же самое нужно - перевести каретку в консольной строке нажатием стрелок и ввести несколько символов, всего несколько, строго определенных, что бы не было ничего паразитного.
эти люди прочитали от одной книги по C++ и больше
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
14.04.2014, 22:21     Ввод и вывод в СИ++ Как? #9
Цитата Сообщение от XRuZzz Посмотреть сообщение
увидите что в основном используются потоки ввода вывода
Это понятно Он что-то другое требует, а точнее, сделать редактор в консоле
Я может еще немного голову поломаю, может что и напишу
XRuZzz
Антикодер
657 / 558 / 27
Регистрация: 15.09.2012
Сообщений: 2,509
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
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
15.04.2014, 07:59     Ввод и вывод в СИ++ Как? #11
Цитата Сообщение от XRuZzz Посмотреть сообщение
множество классов
Это уже ООП, как я понял, человеку с ним не больно хочется связываться.
XRuZzz
Антикодер
657 / 558 / 27
Регистрация: 15.09.2012
Сообщений: 2,509
15.04.2014, 11:56     Ввод и вывод в СИ++ Как? #12
Цитата Сообщение от Ярослав Никитин Посмотреть сообщение
Это уже ООП, как я понял, человеку с ним не больно хочется связываться.
То есть ему не хочется связываться с книгами по C++ программируя на C++? Как следствие - ему не хочется связываться с C++?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 12:10     Ввод и вывод в СИ++ Как?
Еще ссылки по теме:

Как осуществить такую программу где ввод и вывод будет на одной строке? - 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);...

Низкоуровневый ввод-вывод. Как с помощью функции write записать в файл тип int? - C++
Работаю в Ubuntu.По заданию требуется использовать функции низкоуровневого ввода-вывода.Как с помощью функции write(fd,buf,bufsize)...

Ввод /вывод на С++ - C++
мне нужна программа которая сможет с введённых слов находить гласных буквы заранее спасибо))

ввод вывод СИ++ - C++
ля каждого посетителя парикмахерской (с одним мастером) известны t - момент его прихода и to – продолжительность его обслуживания. Сколько...


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

Или воспользуйтесь поиском по форуму:
DrOffset
15.04.2014, 12:10     Ввод и вывод в СИ++ Как?
  #13

Не по теме:

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

Yandex
Объявления
15.04.2014, 12:10     Ввод и вывод в СИ++ Как?
Ответ Создать тему
Опции темы

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