-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Printing to stringstream and retaining formatting #116
Comments
Could you redirect std::cout to a buffer? I'm not sure if this works but it's worth a try. std::stringstream buffer;
std::streambuf* prevcoutbuf = std::cout.rdbuf(buffer.rdbuf());
// print your table
std::cout << yourTable << std::endl;
// Get the table as a string
std::string text = buffer.str();
// Restore original buffer before exiting
std::cout.rdbuf(prevcoutbuf); |
not work |
It actually does work. So let me summarize it. If you have
When you want to capture the string, you can use However, when you print it, the formatting (notably colors) is lost:
The workaround that @p-ranav provided is a good one and works as expected. You can capture the string and do whatever you want with it. Also print it with
It would be great if Tabulate had a function for capturing the string, but this workaround works just fine. |
Hello,
I want to be able to print a table to a stringstream but when I do this the special formatting (colour, boldness, etc.) is not retained.
I want to be able to pass around the table as a string in memory. Is there a way to do this?
Thanks,
Mike
The text was updated successfully, but these errors were encountered: