C 在同一行中左右显示文本
C++ display text left and right in same row
我想在C 中输出整个格式的控制台线(80个字符(。
应该看起来像这样:
Some things on the left side some other on the right side
数据包含两个返回std :: string和固定文本的迭代函数。这样的东西:
std::cout << (*some_iterator)->getID() << " some text:" << LOTSOFSPACES << (*some_other_iterator)->getName() << " some more text.";
结果应始终是80个字符。
我尝试用STD :: SETW和STD :: SETFILL,STD :: left and std ::右侧弄乱,右,使用弦乐并计算我必须创建的空间。但是什么都没有用,大多数想法都完全破坏了输出。
有什么想法吗?不幸的是,我不允许使用外部库。
如果您可以确定这两个部分总是小于40个字符(或者可以以其他任何方式分两列(,则可以这样做:
std::string firstPart = (*some_iterator)->getID() + " some text:";
std::string secondPart = (*some_other_iterator)->getName() + " some more text.";
std::cout << std::setw(40) << std::left << firstPart
<< std::setw(40) << std::right << secondPart;
在线查看
更通用的解决方案是简单地计算字符串之间的间距,然后手动插入它。这不需要具有已知长度的列:
std::string firstPart = (*some_iterator)->getID() + " some text:";
std::string secondPart = (*some_other_iterator)->getName() + " some more text.";
std::size_t spacingSize = 80 - firstPart.length() - secondPart.length();
//Add some code to check if spacingSize is not negative!
std::cout << firstPart << std::string(spacingSize, ' ') << secondPart;
在线查看
您可以尝试将Coursor设置为位置。首先,您必须添加库:
#include <windows.h>
现在您可以使用函数:
COORD c;
c.X = x_coordinate;
c.Y = y_coordinate;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
相关文章:
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 从C++dll访问C#中的一行主要参数
- 在C++中,我如何接受不同于同一行的用户输入
- 如何从一行中读取特定数量的字符?(C++)
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- 读取最后一行代码算法 - c++ 时出现问题
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 有没有办法在一行中填充矢量图
- 需要将一行代码从C++ Qt翻译成PyQt
- 为什么如果我添加这一行,我的程序会不断询问值
- 如何使代码打印文本文件中的第一行?
- 如何在C++中以这种方式返回一行文本?
- 如何使用运算符在同一行中多次调用函数
- 如何格式化我的文本文件以使其不会一遍又一遍地重复同一行?
- 而(!inputfile.eof())只读取第一行?
- 如何在同一行上格式化左右对齐?
- C 在同一行中左右显示文本
- 同一行上的左右对齐方式(RTF FILE)