The printf() and scanf() functions allow C programs to perform input and output.
printf() displays output to the screen using a format string that can include escape sequences, strings, and format specifiers. scanf() reads input from the user, also using a format string with format specifiers to define the expected type of data. Both functions use format specifiers like %d for integers and %f for floating-point numbers. Additional formatting options provide control over field width, decimal places, and justification.
The printf() and scanf() functions allow C programs to perform input and output.
printf() displays output to the screen using a format string that can include escape sequences, strings, and format specifiers. scanf() reads input from the user, also using a format string with format specifiers to define the expected type of data. Both functions use format specifiers like %d for integers and %f for floating-point numbers. Additional formatting options provide control over field width, decimal places, and justification.
The most common output function Used to write information to the screen Format: printf(<format string>); Where: <format string>- string that begins and ends with double quotes The <format string> may contain two types of items: String Escape sequence The Screen Output Function: printf() String A sequence of characters that will be printed on the screen Example: printf(Think Positive!); Escape Sequence Starts with the escape code \. Escape code is a character that indicates that a following character in a data stream is not to be processed in the ordinary way. Example: printf(Think\t Positive!\n); Escape Sequences \a audible bell \n newline (line feed) \t tab \r carriage return \f form feed \v vertical tab \ double quote \\ backslash The Screen Output Function: printf() An extended printf() format is: Format: printf(<format string>, <argument list>); Where: <format string>- string that begins and ends with double quotes <argument list> - list of variables, constants, expressions, or function calls whose values will be printed The <format string> may contain two types of items: Strings and/or escape sequence Format specifiers The Screen Output Function: printf() Strings and/or escape sequence Example: #include <stdio.h> main() { printf(You are\n\n); printf(\tmy \SUNSHINE\!); return 0; } You are my SUNSHINE !_ The Screen Output Function: printf() Format Specifiers Define the way to display the arguments that follow the <format string> Starts with a percent sign % Example: printf(The product of 11 and 10 is %d.\n 11*30); The product of 11 and 10 is 330. _ printf(The product of %i and %i is %i.\n,11,30,11*30); The product of 11 and 30 is 330. _ printf Format Specifiers %c a single character %s string of characters %i decimal integer %e scientific notation %f decimal floating point %o octal (base 8) %d decimal (base 10) integer %u unsigned decimal %x hexadecimal (base 16) %% prints a % sign Setting Field Width and Justification Format Description Controls the number of decimal places displayed by printf() as well as the width output. Display a double (a decimal number with double precision) data in any format Examples: 123, 45, 6789 and Total: COLUMNS 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 T o t a l : Setting Field Width and Justification To set the width of the output field in which data is printed out right justified, place an integer (whole number) between the % and the format specifier, Format: %<fieldwidth specifier> <format specifier>; For example, to set a 7-character field width, type %7d Setting Field Width and Justification For example, #include <stdio.h> int main() { printf (%10d\n, 123); printf (%10d\n, 4567); printf (%10d\n, 89); printf (%7d\n, 89); printf (%5d\n, 89); printf (%d\n, 123); scanf(%c); return 0; } COLUMNS 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 8 9 8 9 1 2 3 Setting Field Width and Justification You can force the data to be left-justified by placing a minus sign(-) directly after the % sign Format: %<- fieldwidth specifier> <format specifier>; For example, % -10s will left-justify a string in a ten-character field Setting Field Width and Justification For example, #include <stdio.h> int main() { printf (%10d\n, 123); printf (% -10d\n, 123); printf (% -10d\n, 4567); printf (% -5d%-3s%-2c, LEFT, X, Y); printf (%-5d %-3s, LEFT, X, ); scanf(%c); return 0; } COLUMNS 1 2 3 4 5 6 7 8 9 10 1 2 3 1 2 3 4 5 6 7 L E F T X Y L E F T X Setting Decimal Places The number of decimal places of floating point numbers (numbers with decimal parts) can be specified by placing a decimal point after the field- width specifier, followed by the decimal places you want to display Format: %<fieldwidth specifier>.<no. of decimal places><format specifier>; For example, %10.3f displays a number at least ten characters wide with three decimal places Setting Decimal Places For example, #include <stdio.h> int main() { printf (%f\n, 123.4567); printf (%10.3f\n, 123.4567); printf (%10.0f\n, 123.4567); printf (%10f\n, 123.4567); printf (%5.2f\n, 123.4567); printf (%5i\n, 123.4567); return 0; } COLUMNS 1 2 3 4 5 6 7 8 9 10 1 2 3 . 4 5 6 7 0 0 1 2 3 . 4 5 7 1 2 3 1 2 3 . 4 5 6 7 0 0 1 2 3 . 4 6 1 2 3 . 4 5 6 7 0 0 Formatting String Constants Decimal point format can also be used on string constants Format: %<fieldwidth specifier>.<maximum field length>s; For example, %6.9s displays a string of at least six characters and not more than nine If the string is longer than the maximum field width, the characters are truncated off the right end. Formatting String Constants For example, #include <stdio.h> #include <conio.h> int main() { clrscr(); printf (%s\n, Special!); printf (%4.7s\n, Special!); printf (%7.0s\n, Special!); printf (%7.4\n, Special!); printf (%10s\n, Special!); return 0; } COLUMNS 1 2 3 4 5 6 7 8 9 10 S p e c i a l ! S p e c i a l S p e c S p e c i a l ! The Basic Data Types and their Sizes Example, the code: double a=3.14; printf(%le \n,a); printf(% .2le \n,a); printf(% .4le \n,a); a=500.777777777; printf(%lf \n,a); printf(% .2le \n,a); printf(% .4le \n,a); Will produce 3.140000e+00 3.14e+00 3.1400e+00 5.007778e+02 5.01e+02 5.0078e+02 The INPUT Function: scanf() Same syntax as the printf(), the only difference is that the series of characters only contains the format specifier that will be used to interpret the value passed by the user Format scanf(<format string>, <address1>, <addr>, ) Where: format string is preceded by a %sign and tells scanf() what type of data is to be read next Scanf() Format Specifiers %d, %i Read a decimal number %o Read an octal number %x Read an hexadecimal number %c Read a single character %s Read a string or sequence of characters %f Read a float value %e Read a double value %h Read a short integer %u Read an unsigned decimal The INPUT Function: scanf() All the variables used to receive values through scanf() must be passed by their addresses All arguments must be pointers to the variables used as arguments Examples: scanf(%d, &salary); /*waits for you to type an integer which can be stored at the address associated with the variable salary */ scanf(%d%d, &a,&b); /*waits you to type in two integer values separated by a space(or a tab or a Enter keypress) */ scanf(%d); /* a technique in still holding onto the User screen for you to view your output, because if you dont, the program will immediately go back to the IDE screen when it is done with program execution */ The INPUT Function: scanf() The presence of other characters in the control string or <format string> are significant A white-space character causes scanf() to skip over one or more white-space characters in the input stream (i.e. %s %s) A non-white-space character causes scanf() to read and discard a matching character (i.e. %s, %s, &x, &y)