2013-07-29 3 views
-1

Мне нужна помощь в решении этой проблемы. Возможно ли распечатать текст до cin. Например:cout до cin in C++

#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> 
==================================== 
+0

Я думаю удалить '\ n' в' соиЬ << "============ ======================== \ п ";' ' –

+5

main' должен быть объявлен как' Int main' – Lstor

+2

переворотом порядок CIN и соиЬ линии? – Borgleader

ответ

3

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

Это не доступно в коде iostream стиле. Для этого вам нужно использовать специальную библиотеку ... что-то, что позволяет управлять курсором, например. a curses - стильная функциональность. Существует Windows Console API, если ваша программа - только окна.

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

Однако, если вы хотите, чтобы игнорировать этот совет и попробовать его ... вот некоторые основы окна-только версии:

Setting stdout/stderr text color in Windows

Setting the Cursor Position in a Win32 Console Application

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

Console interface tutorials and tips (pdcurses)

+0

Я бы определенно хотел попробовать. Не могли бы вы разместить ссылки и объяснить, как это делается? Благодаря! –

+0

@ChinmayDabke Добавил пару ссылок, но «оконная консоль» и «проклятия» будут хорошими ключевыми словами для поиска на StackOverflow и в других местах. – HostileFork

+0

@ChinmayDabke Я забыл заголовок '' в вашем источнике, который фактически может иметь функцию '' gotoxy()' (http://www.c4learn.com/gotoxy-function-conioh-header-file-move. HTML). Но этот файл включен только с ДЕЙСТВИТЕЛЬНО старыми компиляторами, и вам действительно следует избегать его использования (и, вероятно, получить новый компилятор, пока вы на нем). – HostileFork

1

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

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

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

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

консоли Windows API-Reference: http://msdn2.microsoft.com/en-us/library/ms682087.aspx