C Data Input and Data Output
In most programs you create, you will need to display information on the screen or read information from the keyboard. Many of the programs presented in earlier chapters performed these tasks, but you might not have understood exactly how. Today you will learn
The basics of C's input and output statements
- How to display information on-screen with the printf() and puts() library functions
- How to format the information that is displayed on-screen
- How to read data from the keyboard with the scanf() library function
- This chapter isn't intended to be a complete treatment of these topics, but it provides enough information so that you can start writing real programs.
Displaying Information On-Screen
You will want most of your programs to display information on-screen. The two most frequently used ways to do this are with C's library functions printf() and puts().
The printf() Function
- The printf() function, part of the standard C library
- Printf is perhaps the most talented way for a program to display data on-screen.
- You've already seen printf() used in many of the examples.
how printf() works.
Printing a text message on-screen is simple. Call the printf() function, passing the desired message enclosed in double quotation marks. For example, to display An error has occurred! on-screen, you write
printf("An error has occurred!");
In addition to text messages, however, you frequently need to display the value of program variables. This is a little more complicated than displaying only a message. For example, suppose you want to display the value of the numeric variable x on-screen, along with some identifying text. Furthermore, you want the information to start at the beginning of a new line. You could use the printf() function as follows:
printf("\nThe value of x is %d", x);
The resulting screen display, assuming that the value of x is 12, would be
The value of x is 12
In this example, two arguments are passed to printf(). The first argument is enclosed in double quotation marks and is called the format string. The second argument is the name of the variable (x) containing the value to be printed.
The printf() Format Strings
A printf() format string specifies how the output is formatted. Here are the three possible components of a format string:
Literal text is displayed exactly as entered in the format string. In the preceding example, the characters starting with the T (in The) and up to, but not including, the % comprise a literal string.
An escape sequence provides special formatting control. An escape sequence consists of a backslash (\) followed by a single character. In the preceding example, \n is an escape sequence. It is called the newline character, and it means "move to the start of the next line." Escape sequences are also used to print certain characters. Escape sequences are listed in Table 7.1.
A conversion specifier consists of the percent sign (%) followed by a single character. In the example, the conversion specifier is %d. A conversion specifier tells printf() how to interpret the variable(s) being printed. The %d tells printf() to interpret the variable x as a signed decimal integer.
The most frequently used escape sequences.Refer Appendix.
Table: The most commonly needed conversion specifiers.
Specifier Meaning Types %c Single character char %d Signed decimal integer,int, short %ld Signed long decimal long %f Decimal floating-point float, double %s Character string char arrays %u Unsigned decimal integer unsigned int, unsigned short %lu Unsigned long decimal integer unsigned long
The literal text of a format specifier is anything that doesn't qualify as either an escape sequence or a conversion specifier. Literal text is simply printed as is, including all spaces.
Example : Using printf() to display numerical values.
/* Demonstration using printf() to display numerical values. */
#include <stdio.h>
int a = 2, b = 10, c = 50;
float f = 1.05, g = 25.5, h = -0.1;
main()
{
printf("\nDecimal values without tabs: %d %d %d", a, b, c);
printf("\nDecimal values with tabs: \t%d \t%d \t%d", a, b, c);
printf("\nThree floats on 1 line: \t%f\t%f\t%f", f, g, h);
printf("\nThree floats on 3 lines: \n\t%f\n\t%f\n\t%f", f, g, h);
printf("\nThe rate is %f%%", f);
printf("\nThe result of %f/%f = %f\n", g, f, g / f);
return 0;
}
Sample Output:
Decimal values without tabs: 2 10 50
Decimal values with tabs: 2 10 50
Three floats on 1 line: 1.050000 25.500000 -0.100000
Three floats on 3 lines:
1.050000
25.500000
-0.100000
The rate is 1.050000%
The result of 25.500000/1.050000 = 24.285715
Program Analysis:
Listing example prints six lines of information. Lines 10 and 11 each print three decimals: a, b, and c. Line 10 prints them without tabs, and line 11 prints them with tabs. Lines 13 and 14 each print three float variables: f, g, and h. Line 13 prints them on one line, and line 14 prints them on three lines. Line 16 prints a float variable, f, followed by a percent sign. Because a percent sign is normally a message to print a variable, you must place two in a row to print a single percent sign. This is exactly like the backslash escape character. Line 17 shows one final concept. When printing values in conversion specifiers, you don't have to use variables. You can also use expressions such as g / f, or even constants
The printf() Function
#include <stdio.h>
printf( format-string[,arguments,...]);
printf() is a function that accepts a series of arguments, each applying to a conversion specifier in the given format string. printf() prints the formatted information to the standard output device, usually the display screen. When using printf(), you need to include the standard input/output header file, STDIO.H.
The format-string is required; however, arguments are optional. For each argument, there must be a conversion specifier. The table lists the most commonly used conversion specifiers.
The following are examples of calls to printf() and their output:
printf() Example 1:
#include <stdio.h> main() { printf("This is an example of something printed!"); return 0; } Example 1 Output This is an example of something printed!
printf() Example 2:
printf("This prints a character, %c\na number, %d\na floating \
point, %f", `z', 123, 456.789 );
Example 2 Output
This prints a character, z
a number, 123
a floating point, 456.789
Displaying Messages with puts()
The puts() function can also be used to display text messages on-screen, but it can't display numeric variables. puts() takes a single string as its argument and displays it, automatically adding a newline at the end. For example, the statement
puts("Hello, world.");
performs the same action as
printf("Hello, world.\n");
The puts() Function
#include <stdio.h>
puts( string );
puts() is a function that copies a string to the standard output device, usually the display screen. When you use puts(), include the standard input/output header file (STDIO.H). puts() also appends a newline character to the end of the string that is printed. The for- mat string can contain escape sequences. The following are examples of calls to puts() and their output:
puts Example 1:
puts("This is printed with the puts() function!");
Example 1 Output
This is printed with the puts() function!
puts Example 2:
puts("This prints on the first line. \nThis prints on the second line.");
puts("This prints on the third line.");
puts("If these were printf()s, all four lines would be on two lines!");
Example 2 Output
This prints on the first line.
This prints on the second line.
This prints on the third line.
If these were printf()s, all four lines would be on two lines!
More Examples for Print data to Screen
- Single Character Output Function : putch()
- Single Character Output Function : putchar()
- Print or Display String Using puts()
The scanf() Function
#include <stdio.h>
scanf( format-string[,arguments,...]);
scanf() is a function that uses a conversion specifier in a given format-string to place values into variable arguments. The arguments should be the addresses of the variables rather than the actual variables themselves. For numeric variables, you can pass the address by putting the address-of operator (&) at the beginning of the variable name. When using scanf(), you should include the STDIO.H header file.
scanf() reads input fields from the standard input stream, usually the keyboard. It places each of these read fields into an argument. When it places the information, it converts it to the format of the corresponding specifier in the format string. For each argument, there must be a conversion specifier. The table lists the most commonly needed conversion specifiers.
scanf () Example 1
int x, y, z; scanf( "%d %d %d", &x, &y, &z);
scanf () Example 2
#include <stdio.h>
main() {
float y;
int x;
puts( "Enter a float, then an int" );
scanf( "%f %d", &y, &x);
printf( "\nYou entered %f and %d ", y, x );
return 0;
}
Output:
Enter a float, then an int 10.67 100
You entered 10.67 and 100
More Examples for Reading data from screen and Printing data to screen
- Data Output printf and putchar Example Program In C
- Data Input and Output gets and puts Example Program In C
- Printf And Scanf Example Program In C Programming
- Single Character Input Function : getchar()
- Single Character Input Function : getche()
- Single Character Input Function : getch()
- Single Character Output Function : putch()
- Single Character Output Function : putchar()
- Get or Read String Using gets()
- Print or Display String Using puts()
Read More Articles
- Use of getch(),getche() and getchar() in C
- Switch Case Statement Example Program In C Programming Language
- C Character Set
- Convert a Floating-point value to an Integer in C
- Data Input and Output gets and puts Example Program In C
- Special Operators In C
- Pointer Representation and Pointer Example Programs
- C Data Input and Data Output
- Simple While Loop Example Program In C Programming Language
- Data Output printf and putchar Example Program In C
- C Introduction
- C Operators
- Storage Classes In C
- C Pointers
- File Management
- C Identifiers
- Loop Control Statements
- Hello World - Simple C Program
- C Array
- Single Character Output Function : putchar()
- C Reserve Words
- C Specific Properties and Implementation
- If else Statement Example Program In C Programming Language
- If Statement Example Program In C Programming Language
- Confusing Array in C ( Array Representation and Initialization )