консольное приложение — cout перед cin в переполнении стека

Мне нужна помощь с этой проблемой. Можно ли напечатать текст раньше? cin,
Например:

#include<iostream>
#include<conio.h>
void main ()
{
char name[20];
cout<<"====================================\n";
cout<<"Enter your name: ";
cin>>name;
cout<<"\n====================================";
getch();
}

Итак, я хочу третий cout отображается перед вводом имени (cin), так что второй =-лине видна при вводе имени в строке выше.

Чтобы визуализировать это, я пытаюсь создать экран, соответствующий приведенному ниже:

====================================
Enter your name: <CURSOR>
====================================

-1

Решение

Если я вас правильно прочитал, вы хотите, чтобы курсор волшебным образом отскочил назад и оказался рядом с «name:» даже после того, как вы напечатали больше вывода.

Это не доступно в коде в стиле iostream. Вы должны использовать специальную библиотеку для этого … что-то, что позволяет управлять курсором, например проклятий-функциональность стиля Eсть API консоли Windows если ваша программа только для Windows.

Эти библиотеки часто дают вам другие расширения для текстового вывода, такие как установка цветов. Но они могут сделать вашу программу менее переносимой. Обычно лучше всего избегать их, на мой взгляд.

тем не мение, Если вы хотите проигнорировать этот совет и попробовать его … вот некоторые основы версии только для Windows:

Настройка цвета текста stdout / stderr в Windows

Установка положения курсора в консольном приложении Win32

…и некоторую информацию о руководствах по маршруту curses, для независимости от платформы:

Консоли интерфейс учебники и советы (pdcurses)

3

Другие решения

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

Есть несколько библиотек, которые позволяют контролировать вывод на некоторые специальные устройства вывода. В окнах Win32ConsoleAPI представляет окно консоли Windows, которое, разумеется, может выполнять эту работу и, таким образом, предоставляет методы для изменения положения выходного курсора.

Более платформенно-независимым решением для тех же проблем является библиотека под названием libncurses и доступен для других специальных типов терминалов (например, для консоли Linux).

Учебник для начинающих libncurses: http://www.writeka.com/ed/ncurses_library.html

Справочник по API консоли Windows: http://msdn2.microsoft.com/en-us/library/ms682087.aspx

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector