page 151
By ``Input and output facilities are not part of the C language itself,'' we mean that things like printf are just function calls like any other. C has no built-in input or output statements. For our purposes, the implications of this fact--that I/O is not built in--is mainly that the compiler may not do as much checking as we might like it to. If we accidentally write
double d = 1.23; printf("%d\n", d);the compiler says, ``Hmm, a function named printf is being called with a string and a double. Okay by me.'' The compiler does not (and, in general, could not even if it wanted to) notice that the %d format requires an int.
Although the title of this chapter is ``Input and Output,'' it appears that we'll also be meeting a few other routines from the standard library.
If you start to do any serious programming on a particular system, you'll undoubtedly discover that it has a number of more specialized input/output (and other system-related) routines available, which promise better performance or nicer functionality than the pedestrian routines of C's standard library. You should resist the temptation to use these nonstandard routines. Because the standard library routines are defined precisely and ``exist in compatible form on any system where C exists,'' there are some real advantages to using them. (On the other hand, when you need to do something which C's standard library routines don't provide, you'll generally turn to your machine's system-specific routines right away, as they may be your only choice. One common example is when you'd like to read one character immediately, without waiting for the RETURN key. How you do that depends on what system you're using; it is not defined by C.)
section 7.1: Standard Input and Output
section 7.2: Formatted Output--Printf
section 7.3: Variable-length Argument Lists
section 7.4: Formatted Input--Scanf
section 7.6: Error Handling--Stderr and Exit
section 7.7: Line Input and Output
section 7.8.1: String Operations
section 7.8.2: Character Class Testing and Conversion
section 7.8.4: Command Execution
section 7.8.5: Storage Management
section 7.8.6: Mathematical Functions
section 7.8.7: Random Number Generation
Read sequentially: prev next up top
This page by Steve Summit // Copyright 1995, 1996 // mail feedback