字符串数组中的值将被覆盖,而不会被完全替换
The value in the string array is overwritten and not completely replaced
当我执行;consoleinfo(("函数两次,第一个文本比第二个长,数组中的值与第一个重叠
这是我的代码:
string last[20];
void consoleinfo(string log)
{
arrayshift();
last[18] = "[INFO] " + log;
consolerefresh();
}
移位所有值:
void arrayshift()
{
for (int i = 1; i < (sizeof(last) / sizeof(last[0])); i++)
{
last[i - 1] = last[i];
}
}
打印上一次的所有值:
void consolerefresh()
{
for (int i = 0; i < (sizeof(last) / sizeof(last[0])); i++)
{
std::cout << last[i] << std::endl;
}
}
我的输入:
consoleinfo("Hello World!");
consoleinfo("Apple");
输出:
[INFO] Hello World!
[INFO] Apple World!
IMHO这里有一个拼写错误last[18] = "[INFO] " + log;
,必须是last[19] = "[INFO] " + log;
。
当你第一次输入时,你会进入控制台
[INFO]你好,世界!
当您第二次键入时,最后一行将在上一行输出的同一位置输出,单词Hello将用单词Apple重写。
[信息]苹果世界!
您必须在输出前清理控制台,或者在最后一个文本中填充空格,直到控制台宽度或上一行宽度。若你们用的单词比"你好"长或短,那个就很明显了。
last[18] = "[INFO] " + log;
if (last[17].length() > last[18].length())
last[18] += std::string(last[17].length() - last[18].length(), ' ');
相关文章:
- 模板参数替换失败,并且未完成隐式转换
- 如何用转义符替换字符串中的所有特殊字符
- 使用ios:ate写入到流会覆盖现有文件
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- 我可以重新分配/覆盖std::字符串吗
- 在一个读写器队列中,我可以用volatile替换原子吗
- 用符号版本替换对函数的所有调用
- 叮叮当当在修复时插入多个"覆盖"说明符
- 谷歌模拟和覆盖关键字
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 替换基于地图的所有引用
- 按平均值替换数组中的元素
- TMap::Emplace() 在应用现有密钥时会覆盖吗?
- 此测试()中发生了什么意外过程?为什么总是覆盖 ch[0 1 2..]?
- 我可以在这里替换什么,因为我不能在 C# 中使用隐式变量的 lambda 函数?
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 使用子类覆盖基类中定义的函数
- 当覆盖存在时调用基本虚拟"binded to object"函数
- 调用Main将替换矢量对象并覆盖数据
- 如何为基本类型(浮点型)编写替换,以覆盖 运算符 == C++