Formatting our results into character arrays
There are many occasions when we wish our "output" to be written to a
character array, rather than to the screen.
Fortunately, we need to learn very little - we now call standard function
sprintf,
rather than printf,
to perform our formatting.
#include <stdio.h>
char chess_outcome[64];
if(winner == WHITE) {
sprintf(chess_outcome, "WHITE with %i", nwhite_pieces);
}
else {
sprintf(chess_outcome, "BLACK with %i", nblack_pieces);
}
printf("The winner: %s\n", chess_outcome);
|
We must be careful, now,
not to exceed the maximum length of the array receiving the formatted printing.
Thus, we prefer functions which ensure that not too many characters are copied:
char chess_outcome[64];
// FORMAT, AT MOST, A KNOWN NUMBER OF CHARACTERS
if(winner == WHITE) {
snprintf(chess_outcome, 64, "WHITE with %i", nwhite_pieces);
}
// OR, GREATLY PREFERRED:
if(winner == WHITE) {
snprintf(chess_outcome, sizeof(chess_outcome), "WHITE with %i", nwhite_pieces);
}
|
CITS2002 Systems Programming, Lecture 5, p9, 5th August 2024.
|