Это консольное приложение в Visual Studio, поэтому я хотел посмотреть, что произошло, если я позвонил cout
в cout
. И он работает любопытно, но он удаляет характер, который является странным. Поэтому он удаляет количество символов из string
в cout
в main
. Таким образом, он удаляет столько символов, сколько нужно для возврата функции doPrint()
.C++ string cout character lost
Пример: если возвращаемое значение равно 1 он будет выводить «AAAAABLLLLLLLLLL» если возвращаемое значение 2 он будет выводить «AAAAALLLLLLLLLL»
#include "stdafx.h"
#include <iostream>
int doPrint()
{
std::cout << "AAAAA" << std::endl;
return 1;
}
int main()
{
std::cout << "BBLLLLLLLLLL" + doPrint() << std::endl;
int x;
std::cin >> x;
return 0;
}
Это не то, что большое дело, но я хотел бы знать, почему это происходит. Спасибо.
P.S: Я знаю, что я должен делать <<
вместо +
' "BBLLLLLLLLLL" + doPrint()', конечно, не делать то, что вы можете быть думаю, что это делает. Читайте об указателе aritmethics. –
Это можно упростить до 'int main() {std :: cout <<" ABC \ n "+ 1; } ' – melpomene