有没有办法让我看到哪个角色占据某个坐标。假设我有以下输出:
Hello World !
我希望能够在y行看到x字符。类似的东西:
readCoordinates(0,3);
这个函数应该返回'l',因为第一行的第4个字符(因为我从0开始计数)是'l'。我可以从已经打印过的字符串中用C ++做这种类型的读数吗?
答案 0 :(得分:1)
您可以考虑定义自己的自定义打印功能,该功能会记录vector
您已输出到控制台的所有内容。这样,您可以轻松地从控制台中获取字符或字符串。
但是,如果输出数千行,可能会占用大量内存。
答案 1 :(得分:0)
您可以从打印的字符串执行此操作,但在打印后,它只是屏幕上的像素或打印机上的墨水。所以,答案是否定的,除非你有例如一个视觉系统,环顾四周,看看它的打印位置,识别字母和线条,并找出坐标。
答案 2 :(得分:0)
“我可以从已经打印的字符串中用C ++做这种类型的读数吗?”
好的方法是将程序的输出存储在内存中,以便函数readCoordinates
可以访问O(1)中的随机字符。我肯定会使用std::vector<std::string> outputBuffer
来支持你这样的事情:outputBuffer[0][3]
。
示例:
#include <iostream>
#include <vector>
#include <string>
std::vector<std::string> outputBuffer;
char readCoordinates(int line, int character)
{
if (line < outputBuffer.size() && character < outputBuffer[line].size())
return outputBuffer[line][character];
return 0;
}
int main()
{
std::string myOutput("Hello World !");
outputBuffer.push_back(myOutput);
std::cout << myOutput << std::endl;
if (char c = readCoordinates(0, 3))
std::cout << c << std::endl;
}
输出:
Hello World !
l