Read raw bytes in argv[]
I was wondering if there was a way to read bytes (like this: x00x01x02
) from the command line in C.
For example:
#include <stdio.h>
int main(int argc, char *argv) {
printf("%s", argv[1]);
return 0;
}
user@UbuntuServer: ~/Code# gcc Program.c -o Program
user@UbuntuServer: ~/Code# ./Program "x48x69"
Hiuser@UbuntuServer: ~/Code# ./Program "x48x69x0a"
Hi
user@UbuntuServer: ~/Code#
Thanks!
c byte command-line-arguments
add a comment |
I was wondering if there was a way to read bytes (like this: x00x01x02
) from the command line in C.
For example:
#include <stdio.h>
int main(int argc, char *argv) {
printf("%s", argv[1]);
return 0;
}
user@UbuntuServer: ~/Code# gcc Program.c -o Program
user@UbuntuServer: ~/Code# ./Program "x48x69"
Hiuser@UbuntuServer: ~/Code# ./Program "x48x69x0a"
Hi
user@UbuntuServer: ~/Code#
Thanks!
c byte command-line-arguments
Try e.g.printf("%02hhxn", argv[1][0]);
– Some programmer dude
Nov 24 '18 at 9:01
@Someprogrammerdude Look at OPs input, that wont cut it.
– Swordfish
Nov 24 '18 at 9:05
Please read about how to ask good questions, as well as this question checklist. Then edit your question to show us what output you want from the "input" you give.
– Some programmer dude
Nov 24 '18 at 9:14
All three inputs are wanted... The first input, or the one containinggcc
is compiling, the second one is showing thatx48x69
is being printed to the terminal, but notice how there is no newline at the end? That's where the third input comes into play, showing that by adding0A
, or newline, that it will also print a newline.
– speedxerox
Nov 24 '18 at 9:30
add a comment |
I was wondering if there was a way to read bytes (like this: x00x01x02
) from the command line in C.
For example:
#include <stdio.h>
int main(int argc, char *argv) {
printf("%s", argv[1]);
return 0;
}
user@UbuntuServer: ~/Code# gcc Program.c -o Program
user@UbuntuServer: ~/Code# ./Program "x48x69"
Hiuser@UbuntuServer: ~/Code# ./Program "x48x69x0a"
Hi
user@UbuntuServer: ~/Code#
Thanks!
c byte command-line-arguments
I was wondering if there was a way to read bytes (like this: x00x01x02
) from the command line in C.
For example:
#include <stdio.h>
int main(int argc, char *argv) {
printf("%s", argv[1]);
return 0;
}
user@UbuntuServer: ~/Code# gcc Program.c -o Program
user@UbuntuServer: ~/Code# ./Program "x48x69"
Hiuser@UbuntuServer: ~/Code# ./Program "x48x69x0a"
Hi
user@UbuntuServer: ~/Code#
Thanks!
c byte command-line-arguments
c byte command-line-arguments
edited Nov 24 '18 at 9:03
speedxerox
asked Nov 24 '18 at 9:00
speedxeroxspeedxerox
184
184
Try e.g.printf("%02hhxn", argv[1][0]);
– Some programmer dude
Nov 24 '18 at 9:01
@Someprogrammerdude Look at OPs input, that wont cut it.
– Swordfish
Nov 24 '18 at 9:05
Please read about how to ask good questions, as well as this question checklist. Then edit your question to show us what output you want from the "input" you give.
– Some programmer dude
Nov 24 '18 at 9:14
All three inputs are wanted... The first input, or the one containinggcc
is compiling, the second one is showing thatx48x69
is being printed to the terminal, but notice how there is no newline at the end? That's where the third input comes into play, showing that by adding0A
, or newline, that it will also print a newline.
– speedxerox
Nov 24 '18 at 9:30
add a comment |
Try e.g.printf("%02hhxn", argv[1][0]);
– Some programmer dude
Nov 24 '18 at 9:01
@Someprogrammerdude Look at OPs input, that wont cut it.
– Swordfish
Nov 24 '18 at 9:05
Please read about how to ask good questions, as well as this question checklist. Then edit your question to show us what output you want from the "input" you give.
– Some programmer dude
Nov 24 '18 at 9:14
All three inputs are wanted... The first input, or the one containinggcc
is compiling, the second one is showing thatx48x69
is being printed to the terminal, but notice how there is no newline at the end? That's where the third input comes into play, showing that by adding0A
, or newline, that it will also print a newline.
– speedxerox
Nov 24 '18 at 9:30
Try e.g.
printf("%02hhxn", argv[1][0]);
– Some programmer dude
Nov 24 '18 at 9:01
Try e.g.
printf("%02hhxn", argv[1][0]);
– Some programmer dude
Nov 24 '18 at 9:01
@Someprogrammerdude Look at OPs input, that wont cut it.
– Swordfish
Nov 24 '18 at 9:05
@Someprogrammerdude Look at OPs input, that wont cut it.
– Swordfish
Nov 24 '18 at 9:05
Please read about how to ask good questions, as well as this question checklist. Then edit your question to show us what output you want from the "input" you give.
– Some programmer dude
Nov 24 '18 at 9:14
Please read about how to ask good questions, as well as this question checklist. Then edit your question to show us what output you want from the "input" you give.
– Some programmer dude
Nov 24 '18 at 9:14
All three inputs are wanted... The first input, or the one containing
gcc
is compiling, the second one is showing that x48x69
is being printed to the terminal, but notice how there is no newline at the end? That's where the third input comes into play, showing that by adding 0A
, or newline, that it will also print a newline.– speedxerox
Nov 24 '18 at 9:30
All three inputs are wanted... The first input, or the one containing
gcc
is compiling, the second one is showing that x48x69
is being printed to the terminal, but notice how there is no newline at the end? That's where the third input comes into play, showing that by adding 0A
, or newline, that it will also print a newline.– speedxerox
Nov 24 '18 at 9:30
add a comment |
3 Answers
3
active
oldest
votes
I would go for something like this:
int main(int argc, char **argv)
{
char *buf = malloc(strlen(argv[1]) / 4 + 1);
size_t i = 0;
for (char *tok = strtok(argv[1], "\x"); tok; tok = strtok(NULL, "\x"))
{
sscanf(tok, "%02hhx", buf + i);
i++;
}
buf[i] = '';
printf("%s", buf);
free(buf);
return 0;
}
add a comment |
Unless you use a library to parse regex strings like that, you'll need to parse the hex manually. Check out this answer (which has slightly different syntax but a similar function):
Hexadecimal string to byte array in C
That should rather have been a comment.
– Swordfish
Nov 24 '18 at 9:17
Yes, but I can't comment until I have 50 reputation. Probably should have let someone else answer it I guess...
– Paul
Nov 24 '18 at 9:27
Didn't think about rep and being able to comment. I don't know what to do best in such a situation either. Gave you some, hope it helps ;)
– Swordfish
Nov 24 '18 at 9:29
In general, until you have enough rep to comment, it is best not to produce a 'not an answer' containing the comment. That's likely to get downvoted, which means it takes longer to reach the ability to comment. In this case, enough people seem to agree with your sentiment that you've now earned commenting privileges
– Jonathan Leffler
Nov 24 '18 at 9:44
@Paul Happy commenting :)
– Swordfish
Nov 24 '18 at 9:58
add a comment |
I found the HEX to ASCII conversion functions on this thread, and modified it to suit my situation.
#include <stdio.h>
#include <string.h>
int hexToInt(char c) {
int first = c / 16 - 3;
int second = c % 16;
int result = first * 10 + second;
if(result > 9) {
result--;
}
return result;
}
int hexToASCII(char c, char d) {
int high = hexToInt(c) * 16;
int low = hexToInt(d);
return high + low;
}
int main(int argc, char *argv) {
char* hexString = argv[1];
char buf = 0;
for(int i = 0; i < strlen(hexString); i++) {
if(i % 2 != 0) {
printf("%c", hexToASCII(buf, hexString[i]));
} else {
buf = hexString[i];
}
}
return 0;
}
One observation: this assumes the alphabetic hex digits are in upper-case; it does not handle those in lower case correctly. It's an intriguing way of converting digits0
..9
and lettersA
..F
to hex. The algorithm isn't obvious. Unfortunately, since it doesn't do any validation, it is not very resilient — I couldn't recommend it for general use, though given valid data, it does work.
– Jonathan Leffler
Nov 24 '18 at 10:04
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%2f53456672%2fread-raw-bytes-in-argv%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
I would go for something like this:
int main(int argc, char **argv)
{
char *buf = malloc(strlen(argv[1]) / 4 + 1);
size_t i = 0;
for (char *tok = strtok(argv[1], "\x"); tok; tok = strtok(NULL, "\x"))
{
sscanf(tok, "%02hhx", buf + i);
i++;
}
buf[i] = '';
printf("%s", buf);
free(buf);
return 0;
}
add a comment |
I would go for something like this:
int main(int argc, char **argv)
{
char *buf = malloc(strlen(argv[1]) / 4 + 1);
size_t i = 0;
for (char *tok = strtok(argv[1], "\x"); tok; tok = strtok(NULL, "\x"))
{
sscanf(tok, "%02hhx", buf + i);
i++;
}
buf[i] = '';
printf("%s", buf);
free(buf);
return 0;
}
add a comment |
I would go for something like this:
int main(int argc, char **argv)
{
char *buf = malloc(strlen(argv[1]) / 4 + 1);
size_t i = 0;
for (char *tok = strtok(argv[1], "\x"); tok; tok = strtok(NULL, "\x"))
{
sscanf(tok, "%02hhx", buf + i);
i++;
}
buf[i] = '';
printf("%s", buf);
free(buf);
return 0;
}
I would go for something like this:
int main(int argc, char **argv)
{
char *buf = malloc(strlen(argv[1]) / 4 + 1);
size_t i = 0;
for (char *tok = strtok(argv[1], "\x"); tok; tok = strtok(NULL, "\x"))
{
sscanf(tok, "%02hhx", buf + i);
i++;
}
buf[i] = '';
printf("%s", buf);
free(buf);
return 0;
}
answered Nov 24 '18 at 9:39
alamitalamit
36719
36719
add a comment |
add a comment |
Unless you use a library to parse regex strings like that, you'll need to parse the hex manually. Check out this answer (which has slightly different syntax but a similar function):
Hexadecimal string to byte array in C
That should rather have been a comment.
– Swordfish
Nov 24 '18 at 9:17
Yes, but I can't comment until I have 50 reputation. Probably should have let someone else answer it I guess...
– Paul
Nov 24 '18 at 9:27
Didn't think about rep and being able to comment. I don't know what to do best in such a situation either. Gave you some, hope it helps ;)
– Swordfish
Nov 24 '18 at 9:29
In general, until you have enough rep to comment, it is best not to produce a 'not an answer' containing the comment. That's likely to get downvoted, which means it takes longer to reach the ability to comment. In this case, enough people seem to agree with your sentiment that you've now earned commenting privileges
– Jonathan Leffler
Nov 24 '18 at 9:44
@Paul Happy commenting :)
– Swordfish
Nov 24 '18 at 9:58
add a comment |
Unless you use a library to parse regex strings like that, you'll need to parse the hex manually. Check out this answer (which has slightly different syntax but a similar function):
Hexadecimal string to byte array in C
That should rather have been a comment.
– Swordfish
Nov 24 '18 at 9:17
Yes, but I can't comment until I have 50 reputation. Probably should have let someone else answer it I guess...
– Paul
Nov 24 '18 at 9:27
Didn't think about rep and being able to comment. I don't know what to do best in such a situation either. Gave you some, hope it helps ;)
– Swordfish
Nov 24 '18 at 9:29
In general, until you have enough rep to comment, it is best not to produce a 'not an answer' containing the comment. That's likely to get downvoted, which means it takes longer to reach the ability to comment. In this case, enough people seem to agree with your sentiment that you've now earned commenting privileges
– Jonathan Leffler
Nov 24 '18 at 9:44
@Paul Happy commenting :)
– Swordfish
Nov 24 '18 at 9:58
add a comment |
Unless you use a library to parse regex strings like that, you'll need to parse the hex manually. Check out this answer (which has slightly different syntax but a similar function):
Hexadecimal string to byte array in C
Unless you use a library to parse regex strings like that, you'll need to parse the hex manually. Check out this answer (which has slightly different syntax but a similar function):
Hexadecimal string to byte array in C
answered Nov 24 '18 at 9:06
PaulPaul
3606
3606
That should rather have been a comment.
– Swordfish
Nov 24 '18 at 9:17
Yes, but I can't comment until I have 50 reputation. Probably should have let someone else answer it I guess...
– Paul
Nov 24 '18 at 9:27
Didn't think about rep and being able to comment. I don't know what to do best in such a situation either. Gave you some, hope it helps ;)
– Swordfish
Nov 24 '18 at 9:29
In general, until you have enough rep to comment, it is best not to produce a 'not an answer' containing the comment. That's likely to get downvoted, which means it takes longer to reach the ability to comment. In this case, enough people seem to agree with your sentiment that you've now earned commenting privileges
– Jonathan Leffler
Nov 24 '18 at 9:44
@Paul Happy commenting :)
– Swordfish
Nov 24 '18 at 9:58
add a comment |
That should rather have been a comment.
– Swordfish
Nov 24 '18 at 9:17
Yes, but I can't comment until I have 50 reputation. Probably should have let someone else answer it I guess...
– Paul
Nov 24 '18 at 9:27
Didn't think about rep and being able to comment. I don't know what to do best in such a situation either. Gave you some, hope it helps ;)
– Swordfish
Nov 24 '18 at 9:29
In general, until you have enough rep to comment, it is best not to produce a 'not an answer' containing the comment. That's likely to get downvoted, which means it takes longer to reach the ability to comment. In this case, enough people seem to agree with your sentiment that you've now earned commenting privileges
– Jonathan Leffler
Nov 24 '18 at 9:44
@Paul Happy commenting :)
– Swordfish
Nov 24 '18 at 9:58
That should rather have been a comment.
– Swordfish
Nov 24 '18 at 9:17
That should rather have been a comment.
– Swordfish
Nov 24 '18 at 9:17
Yes, but I can't comment until I have 50 reputation. Probably should have let someone else answer it I guess...
– Paul
Nov 24 '18 at 9:27
Yes, but I can't comment until I have 50 reputation. Probably should have let someone else answer it I guess...
– Paul
Nov 24 '18 at 9:27
Didn't think about rep and being able to comment. I don't know what to do best in such a situation either. Gave you some, hope it helps ;)
– Swordfish
Nov 24 '18 at 9:29
Didn't think about rep and being able to comment. I don't know what to do best in such a situation either. Gave you some, hope it helps ;)
– Swordfish
Nov 24 '18 at 9:29
In general, until you have enough rep to comment, it is best not to produce a 'not an answer' containing the comment. That's likely to get downvoted, which means it takes longer to reach the ability to comment. In this case, enough people seem to agree with your sentiment that you've now earned commenting privileges
– Jonathan Leffler
Nov 24 '18 at 9:44
In general, until you have enough rep to comment, it is best not to produce a 'not an answer' containing the comment. That's likely to get downvoted, which means it takes longer to reach the ability to comment. In this case, enough people seem to agree with your sentiment that you've now earned commenting privileges
– Jonathan Leffler
Nov 24 '18 at 9:44
@Paul Happy commenting :)
– Swordfish
Nov 24 '18 at 9:58
@Paul Happy commenting :)
– Swordfish
Nov 24 '18 at 9:58
add a comment |
I found the HEX to ASCII conversion functions on this thread, and modified it to suit my situation.
#include <stdio.h>
#include <string.h>
int hexToInt(char c) {
int first = c / 16 - 3;
int second = c % 16;
int result = first * 10 + second;
if(result > 9) {
result--;
}
return result;
}
int hexToASCII(char c, char d) {
int high = hexToInt(c) * 16;
int low = hexToInt(d);
return high + low;
}
int main(int argc, char *argv) {
char* hexString = argv[1];
char buf = 0;
for(int i = 0; i < strlen(hexString); i++) {
if(i % 2 != 0) {
printf("%c", hexToASCII(buf, hexString[i]));
} else {
buf = hexString[i];
}
}
return 0;
}
One observation: this assumes the alphabetic hex digits are in upper-case; it does not handle those in lower case correctly. It's an intriguing way of converting digits0
..9
and lettersA
..F
to hex. The algorithm isn't obvious. Unfortunately, since it doesn't do any validation, it is not very resilient — I couldn't recommend it for general use, though given valid data, it does work.
– Jonathan Leffler
Nov 24 '18 at 10:04
add a comment |
I found the HEX to ASCII conversion functions on this thread, and modified it to suit my situation.
#include <stdio.h>
#include <string.h>
int hexToInt(char c) {
int first = c / 16 - 3;
int second = c % 16;
int result = first * 10 + second;
if(result > 9) {
result--;
}
return result;
}
int hexToASCII(char c, char d) {
int high = hexToInt(c) * 16;
int low = hexToInt(d);
return high + low;
}
int main(int argc, char *argv) {
char* hexString = argv[1];
char buf = 0;
for(int i = 0; i < strlen(hexString); i++) {
if(i % 2 != 0) {
printf("%c", hexToASCII(buf, hexString[i]));
} else {
buf = hexString[i];
}
}
return 0;
}
One observation: this assumes the alphabetic hex digits are in upper-case; it does not handle those in lower case correctly. It's an intriguing way of converting digits0
..9
and lettersA
..F
to hex. The algorithm isn't obvious. Unfortunately, since it doesn't do any validation, it is not very resilient — I couldn't recommend it for general use, though given valid data, it does work.
– Jonathan Leffler
Nov 24 '18 at 10:04
add a comment |
I found the HEX to ASCII conversion functions on this thread, and modified it to suit my situation.
#include <stdio.h>
#include <string.h>
int hexToInt(char c) {
int first = c / 16 - 3;
int second = c % 16;
int result = first * 10 + second;
if(result > 9) {
result--;
}
return result;
}
int hexToASCII(char c, char d) {
int high = hexToInt(c) * 16;
int low = hexToInt(d);
return high + low;
}
int main(int argc, char *argv) {
char* hexString = argv[1];
char buf = 0;
for(int i = 0; i < strlen(hexString); i++) {
if(i % 2 != 0) {
printf("%c", hexToASCII(buf, hexString[i]));
} else {
buf = hexString[i];
}
}
return 0;
}
I found the HEX to ASCII conversion functions on this thread, and modified it to suit my situation.
#include <stdio.h>
#include <string.h>
int hexToInt(char c) {
int first = c / 16 - 3;
int second = c % 16;
int result = first * 10 + second;
if(result > 9) {
result--;
}
return result;
}
int hexToASCII(char c, char d) {
int high = hexToInt(c) * 16;
int low = hexToInt(d);
return high + low;
}
int main(int argc, char *argv) {
char* hexString = argv[1];
char buf = 0;
for(int i = 0; i < strlen(hexString); i++) {
if(i % 2 != 0) {
printf("%c", hexToASCII(buf, hexString[i]));
} else {
buf = hexString[i];
}
}
return 0;
}
answered Nov 24 '18 at 9:41
speedxeroxspeedxerox
184
184
One observation: this assumes the alphabetic hex digits are in upper-case; it does not handle those in lower case correctly. It's an intriguing way of converting digits0
..9
and lettersA
..F
to hex. The algorithm isn't obvious. Unfortunately, since it doesn't do any validation, it is not very resilient — I couldn't recommend it for general use, though given valid data, it does work.
– Jonathan Leffler
Nov 24 '18 at 10:04
add a comment |
One observation: this assumes the alphabetic hex digits are in upper-case; it does not handle those in lower case correctly. It's an intriguing way of converting digits0
..9
and lettersA
..F
to hex. The algorithm isn't obvious. Unfortunately, since it doesn't do any validation, it is not very resilient — I couldn't recommend it for general use, though given valid data, it does work.
– Jonathan Leffler
Nov 24 '18 at 10:04
One observation: this assumes the alphabetic hex digits are in upper-case; it does not handle those in lower case correctly. It's an intriguing way of converting digits
0
..9
and letters A
..F
to hex. The algorithm isn't obvious. Unfortunately, since it doesn't do any validation, it is not very resilient — I couldn't recommend it for general use, though given valid data, it does work.– Jonathan Leffler
Nov 24 '18 at 10:04
One observation: this assumes the alphabetic hex digits are in upper-case; it does not handle those in lower case correctly. It's an intriguing way of converting digits
0
..9
and letters A
..F
to hex. The algorithm isn't obvious. Unfortunately, since it doesn't do any validation, it is not very resilient — I couldn't recommend it for general use, though given valid data, it does work.– Jonathan Leffler
Nov 24 '18 at 10:04
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%2f53456672%2fread-raw-bytes-in-argv%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
Try e.g.
printf("%02hhxn", argv[1][0]);
– Some programmer dude
Nov 24 '18 at 9:01
@Someprogrammerdude Look at OPs input, that wont cut it.
– Swordfish
Nov 24 '18 at 9:05
Please read about how to ask good questions, as well as this question checklist. Then edit your question to show us what output you want from the "input" you give.
– Some programmer dude
Nov 24 '18 at 9:14
All three inputs are wanted... The first input, or the one containing
gcc
is compiling, the second one is showing thatx48x69
is being printed to the terminal, but notice how there is no newline at the end? That's where the third input comes into play, showing that by adding0A
, or newline, that it will also print a newline.– speedxerox
Nov 24 '18 at 9:30