C++ C++;输出顺序
我有一个这样的语句,用于输出函数返回的内容C++ C++;输出顺序,c++,cout,C++,Cout,我有一个这样的语句,用于输出函数返回的内容 std::cout<<"result: " << calculateAvg(someArray, size) << std::endl; std::cout 有没有一种方法可以让我打印出该行返回的内容,而不是在函数打印的所有内容之后 不可以。函数必须先运行,然后才能返回内容。这意味着函数输出的任何输出都将先于函数返回值的输出 有没有一种方法可以让我打印出该行返回的内容,而不是在函数打印的所有内容之后 不可以。函数必
std::cout<<"result: " << calculateAvg(someArray, size) << std::endl;
std::cout
有没有一种方法可以让我打印出该行返回的内容,而不是在函数打印的所有内容之后
不可以。函数必须先运行,然后才能返回内容。这意味着函数输出的任何输出都将先于函数返回值的输出
有没有一种方法可以让我打印出该行返回的内容,而不是在函数打印的所有内容之后
不可以。函数必须先运行,然后才能返回内容。这意味着函数输出的任何输出都将先于函数返回值的输出。您可以将std::cout
重定向到缓冲区(请参阅),调用函数,重定向回,打印结果,然后打印缓冲区:
#include <iostream>
#include <sstream>
#include <string>
std::string myFunc() {
std::cout << "print inside myFunc" << std::endl;
return "string returned from myFunc";
}
int main() {
std::stringstream print_inside;
std::streambuf * old = std::cout.rdbuf(print_inside.rdbuf());
std::string returned_string = myFunc();
std::cout.rdbuf(old);
std::cout << returned_string << std::endl;
std::cout << print_inside.str() << std::flush; //endl already there
}
#包括
#包括
#包括
std::string myFunc(){
std::cout您可以重定向std::cout
到缓冲区(请参阅),调用函数,重定向回,打印结果,然后打印缓冲区:
#include <iostream>
#include <sstream>
#include <string>
std::string myFunc() {
std::cout << "print inside myFunc" << std::endl;
return "string returned from myFunc";
}
int main() {
std::stringstream print_inside;
std::streambuf * old = std::cout.rdbuf(print_inside.rdbuf());
std::string returned_string = myFunc();
std::cout.rdbuf(old);
std::cout << returned_string << std::endl;
std::cout << print_inside.str() << std::flush; //endl already there
}
#包括
#包括
#包括
std::string myFunc(){
std::cout除非重写函数。将结果赋给临时变量以确保函数的任何输出在“result:”之前。您还应该意识到,除非重写函数,否则不能。将结果赋给临时变量以确保函数的任何输出在“result:”之前您还应该意识到,关于OP的意图。@πάνταῥεῖ 我从阅读问题中得出的结论是OP不想更改cout
行。但是,如果他同意更改呼叫站点,那么他可以重定向cout
,以了解OP的意图。@πάνταῥεῖ 我从阅读问题中得出的结论是OP不想更改cout
行。但是是的,如果他同意更改呼叫站点,那么他可以重定向cout
请给那个答案多一点(代码)肉。我犹豫了一下是否将这个链接标记为第一位的重复。给那个答案多一点(代码)肉请,我犹豫是否标记此链接为重复在第一位。