Ich habe dieses Stück Code (etwas, das ich zusammen einen seltsamen Fehler in einem Schachprogramm zu isolieren warf versuche Ich versuche zu schreiben):Warum gibt Cout Ausgabe Backslashes und Ziffern aus, wenn ich es wieder verwende?
#include <vector>
#include <iostream>
class piece{
public:
piece() : COLOUR('C'){}
const char COLOUR;
};
std::vector<piece*> makeEmptyLine(){
std::vector<piece*> emptyLine;
piece null;
emptyLine.push_back(&null);
return emptyLine;
}
int main(){
std::vector<piece*> emptyLine = makeEmptyLine();
std::cout << (*emptyLine[0]).COLOUR;
std::cout << (*emptyLine[0]).COLOUR;
std::cout << (*emptyLine[0]).COLOUR;
return 0;
}
Und der Ausgang ist C\367\367
Die erste std::cout << (*emptyLine[0]).COLOUR;
gibt immer "C" aus (das erwartete Ergebnis). Aber wenn es erneut verwendet wird, gibt es diesen Backslash und drei Ziffern aus, die sich ändern, je nachdem, wie oft ich cout im Programm verwende.