在c++中,cout先于cin
cout before cin in c++
我需要帮助解决这个问题。是否可以在cin
之前打印文本。例如:
#include<iostream>
#include<conio.h>
void main ()
{
char name[20];
cout<<"====================================n";
cout<<"Enter your name: ";
cin>>name;
cout<<"n====================================";
getch();
}
因此,我希望在输入名称(cin
)之前显示第三个cout
,以便在上面的行中输入名称时可以看到第二个=
-行。
为了将其可视化,我正在尝试创建一个与以下内容匹配的屏幕:
====================================
Enter your name: <CURSOR>
====================================
如果我没有看错,即使在打印了更多输出之后,您也希望光标神奇地跳回并位于"name:"旁边。
这在iostream样式的代码中不可用。你必须使用一个特殊的图书馆。。。允许光标控制的东西,例如curses风格的功能。如果您的程序仅为Windows,则有一个Windows控制台API。
这些库通常为文本输出提供其他扩展,比如设置颜色。但它们会降低程序的可移植性。在我看来,通常最好避开它们。
然而,如果你想忽略这个建议并尝试它…以下是仅限windows版本的一些基本信息:
在Windows 中设置stdout/stderr文本颜色
在Win32控制台应用程序中设置光标位置
以及一些关于curses路线教程的信息,用于平台独立性:
控制台界面教程和提示(pdcurses)
stdio
输入/输出方法适用于流。流是某种类型的输出或输入介质,可以是文件、打印机、行控制台、网络流、管道或其他输入设备。这种抽象不允许更改已经编写的内容。因此,不可能在其他内容下方打印内容,然后跳回前一行(例如,打印机无法这样做)。
有一些库,允许控制一些特殊输出设备的输出。在windows中,Win32ConsoleAPI表示一个windows控制台窗口,它当然能够完成这项工作,从而为您提供重新定位输出光标的方法。
对于同样的问题,一个更独立于平台的解决方案是一个名为libncurses
的库,它也可用于其他特殊的终端类型(例如Linux控制台)。
libncurses初学者教程:http://www.writeka.com/ed/ncurses_library.html
Windows控制台API-参考:http://msdn2.microsoft.com/en-us/library/ms682087.aspx
- C++中的cin.ignore()函数不适用于整个流
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- Problems with std::cin.fail()
- 由cin中的字符串中未捕获空白引起的分割错误
- 在C++中使用Cin,我如何在1行中输入
- 将 cin 限制为只有一个
- cin >> int 给定一个字符串将 int 赋值为 0
- istream std::cin如何修改自定义istream缓冲区
- C++ 将 CIN 值存储到任何类型的数组中
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- 类作用域的类型别名"using":[何时]方法中的用法可以先于类型别名?
- cin 的十进制输入验证?
- Turbo C++ cin() 不能与 gets() 一起使用
- 使用 cin 时接受小数点后的 2 位数字
- 在 std::getline 和 std::cin 期间卡在循环中
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 为什么我的两个 cin 语句没有在程序结束时运行?
- C++ cin.ignore() 跳过循环
- CIN是逻辑1还是0?
- 在c++中,cout先于cin