Assign ostream to a datatype string in c++
I have a below method that I can understand by name is converting the output in a pretty format to display. But I don't understand what this code is doing and what is its return type. How can I assign this return type to a string datatype which I want to access from javascript
std::ostream & prettyPrintRaw(std::ostream &out, const std::vector<unsigned char> &buf) {
vector<unsigned char>::const_iterator ptr = buf.begin();
vector<unsigned char>::const_iterator end = buf.end();
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~') {
out.put(c);
barCodeDataChar[i] = c;
i++;
}
else
out << '{' << (int) c << '}';
ptr++;
} // end while
return out;
} // end function
Sorry I am not able to prettyFormat this piece
of code
javascript c++ visual-studio
add a comment |
I have a below method that I can understand by name is converting the output in a pretty format to display. But I don't understand what this code is doing and what is its return type. How can I assign this return type to a string datatype which I want to access from javascript
std::ostream & prettyPrintRaw(std::ostream &out, const std::vector<unsigned char> &buf) {
vector<unsigned char>::const_iterator ptr = buf.begin();
vector<unsigned char>::const_iterator end = buf.end();
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~') {
out.put(c);
barCodeDataChar[i] = c;
i++;
}
else
out << '{' << (int) c << '}';
ptr++;
} // end while
return out;
} // end function
Sorry I am not able to prettyFormat this piece
of code
javascript c++ visual-studio
1
Possible duplicate of Converting ostream into standard string
– user10605163
Jan 1 at 5:22
1
or maybe stackoverflow.com/questions/44997424/…
– user10605163
Jan 1 at 5:24
add a comment |
I have a below method that I can understand by name is converting the output in a pretty format to display. But I don't understand what this code is doing and what is its return type. How can I assign this return type to a string datatype which I want to access from javascript
std::ostream & prettyPrintRaw(std::ostream &out, const std::vector<unsigned char> &buf) {
vector<unsigned char>::const_iterator ptr = buf.begin();
vector<unsigned char>::const_iterator end = buf.end();
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~') {
out.put(c);
barCodeDataChar[i] = c;
i++;
}
else
out << '{' << (int) c << '}';
ptr++;
} // end while
return out;
} // end function
Sorry I am not able to prettyFormat this piece
of code
javascript c++ visual-studio
I have a below method that I can understand by name is converting the output in a pretty format to display. But I don't understand what this code is doing and what is its return type. How can I assign this return type to a string datatype which I want to access from javascript
std::ostream & prettyPrintRaw(std::ostream &out, const std::vector<unsigned char> &buf) {
vector<unsigned char>::const_iterator ptr = buf.begin();
vector<unsigned char>::const_iterator end = buf.end();
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~') {
out.put(c);
barCodeDataChar[i] = c;
i++;
}
else
out << '{' << (int) c << '}';
ptr++;
} // end while
return out;
} // end function
Sorry I am not able to prettyFormat this piece
of code
javascript c++ visual-studio
javascript c++ visual-studio
edited Jan 1 at 5:46
DOOM
556313
556313
asked Jan 1 at 5:12
Vinodh Kumar CVinodh Kumar C
444
444
1
Possible duplicate of Converting ostream into standard string
– user10605163
Jan 1 at 5:22
1
or maybe stackoverflow.com/questions/44997424/…
– user10605163
Jan 1 at 5:24
add a comment |
1
Possible duplicate of Converting ostream into standard string
– user10605163
Jan 1 at 5:22
1
or maybe stackoverflow.com/questions/44997424/…
– user10605163
Jan 1 at 5:24
1
1
Possible duplicate of Converting ostream into standard string
– user10605163
Jan 1 at 5:22
Possible duplicate of Converting ostream into standard string
– user10605163
Jan 1 at 5:22
1
1
or maybe stackoverflow.com/questions/44997424/…
– user10605163
Jan 1 at 5:24
or maybe stackoverflow.com/questions/44997424/…
– user10605163
Jan 1 at 5:24
add a comment |
2 Answers
2
active
oldest
votes
You can remove the std::ostream &out
parameter, and use a string stream to construct you string value.
You can then use myStringStream.str()
to get a string.
#include <sstream>
#include <string>
std::string prettyPrintRaw(const std::vector<char> &buf) {
auto ptr = buf.begin();
auto end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
i++;
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
Edit:
Obviously std::vector
is a template class and needs a template parameter...
Also one should declare iterators with auto (according to my ide).
Edit 2:
The line barCodeDataChar[i] = c;
does not work in the code example given as barCodeDataChar
is not defined.
add a comment |
Thanks Kanjio, but I had to make the below changes to make it work
std::string prettyPrintRaw1(const std::vector<unsigned char> &buf) {
vector<unsigned char>::const_iterator ptr = buf.begin();
vector<unsigned char>::const_iterator end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
Thanks for pointing that out, i updated my answer.
– Kanjiu
Jan 1 at 8:30
Also its spelled Kanjiu not Kanjio ;)
– Kanjiu
Jan 1 at 8:32
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53993141%2fassign-ostream-to-a-datatype-string-in-c%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can remove the std::ostream &out
parameter, and use a string stream to construct you string value.
You can then use myStringStream.str()
to get a string.
#include <sstream>
#include <string>
std::string prettyPrintRaw(const std::vector<char> &buf) {
auto ptr = buf.begin();
auto end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
i++;
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
Edit:
Obviously std::vector
is a template class and needs a template parameter...
Also one should declare iterators with auto (according to my ide).
Edit 2:
The line barCodeDataChar[i] = c;
does not work in the code example given as barCodeDataChar
is not defined.
add a comment |
You can remove the std::ostream &out
parameter, and use a string stream to construct you string value.
You can then use myStringStream.str()
to get a string.
#include <sstream>
#include <string>
std::string prettyPrintRaw(const std::vector<char> &buf) {
auto ptr = buf.begin();
auto end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
i++;
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
Edit:
Obviously std::vector
is a template class and needs a template parameter...
Also one should declare iterators with auto (according to my ide).
Edit 2:
The line barCodeDataChar[i] = c;
does not work in the code example given as barCodeDataChar
is not defined.
add a comment |
You can remove the std::ostream &out
parameter, and use a string stream to construct you string value.
You can then use myStringStream.str()
to get a string.
#include <sstream>
#include <string>
std::string prettyPrintRaw(const std::vector<char> &buf) {
auto ptr = buf.begin();
auto end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
i++;
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
Edit:
Obviously std::vector
is a template class and needs a template parameter...
Also one should declare iterators with auto (according to my ide).
Edit 2:
The line barCodeDataChar[i] = c;
does not work in the code example given as barCodeDataChar
is not defined.
You can remove the std::ostream &out
parameter, and use a string stream to construct you string value.
You can then use myStringStream.str()
to get a string.
#include <sstream>
#include <string>
std::string prettyPrintRaw(const std::vector<char> &buf) {
auto ptr = buf.begin();
auto end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
i++;
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
Edit:
Obviously std::vector
is a template class and needs a template parameter...
Also one should declare iterators with auto (according to my ide).
Edit 2:
The line barCodeDataChar[i] = c;
does not work in the code example given as barCodeDataChar
is not defined.
edited Jan 1 at 8:29
answered Jan 1 at 5:30


KanjiuKanjiu
42110
42110
add a comment |
add a comment |
Thanks Kanjio, but I had to make the below changes to make it work
std::string prettyPrintRaw1(const std::vector<unsigned char> &buf) {
vector<unsigned char>::const_iterator ptr = buf.begin();
vector<unsigned char>::const_iterator end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
Thanks for pointing that out, i updated my answer.
– Kanjiu
Jan 1 at 8:30
Also its spelled Kanjiu not Kanjio ;)
– Kanjiu
Jan 1 at 8:32
add a comment |
Thanks Kanjio, but I had to make the below changes to make it work
std::string prettyPrintRaw1(const std::vector<unsigned char> &buf) {
vector<unsigned char>::const_iterator ptr = buf.begin();
vector<unsigned char>::const_iterator end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
Thanks for pointing that out, i updated my answer.
– Kanjiu
Jan 1 at 8:30
Also its spelled Kanjiu not Kanjio ;)
– Kanjiu
Jan 1 at 8:32
add a comment |
Thanks Kanjio, but I had to make the below changes to make it work
std::string prettyPrintRaw1(const std::vector<unsigned char> &buf) {
vector<unsigned char>::const_iterator ptr = buf.begin();
vector<unsigned char>::const_iterator end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
Thanks Kanjio, but I had to make the below changes to make it work
std::string prettyPrintRaw1(const std::vector<unsigned char> &buf) {
vector<unsigned char>::const_iterator ptr = buf.begin();
vector<unsigned char>::const_iterator end = buf.end();
std::stringstream out;
int i = 0;
while (ptr != end) {
char c = (char) *ptr;
if (c >= ' ' && c <= '~'){
out.put(c);
}
else {
out << '{' << (int) c << '}';
}
ptr++;
}
return out.str();
}
answered Jan 1 at 6:13
Vinodh Kumar CVinodh Kumar C
444
444
Thanks for pointing that out, i updated my answer.
– Kanjiu
Jan 1 at 8:30
Also its spelled Kanjiu not Kanjio ;)
– Kanjiu
Jan 1 at 8:32
add a comment |
Thanks for pointing that out, i updated my answer.
– Kanjiu
Jan 1 at 8:30
Also its spelled Kanjiu not Kanjio ;)
– Kanjiu
Jan 1 at 8:32
Thanks for pointing that out, i updated my answer.
– Kanjiu
Jan 1 at 8:30
Thanks for pointing that out, i updated my answer.
– Kanjiu
Jan 1 at 8:30
Also its spelled Kanjiu not Kanjio ;)
– Kanjiu
Jan 1 at 8:32
Also its spelled Kanjiu not Kanjio ;)
– Kanjiu
Jan 1 at 8:32
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53993141%2fassign-ostream-to-a-datatype-string-in-c%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Possible duplicate of Converting ostream into standard string
– user10605163
Jan 1 at 5:22
1
or maybe stackoverflow.com/questions/44997424/…
– user10605163
Jan 1 at 5:24