In C you could use freopen to redirect stdout to a file. But I'm pretty sure that you don't really need this, and redirection should work correctly. Freopen - C Reference. In C, for cout you could use std::ios::rdbuf by stealing the stream buffer from a file opened for writing. Ios::rdbuf - C Reference.
- C Programming Tutorial
- C Programming useful Resources
- Selected Reading
When we say Input, it means to feed some data into a program. An input can be given in the form of a file or from the command line. C programming provides a set of built-in functions to read the given input and feed it to the program as per requirement.
When we say Output, it means to display some data on screen, printer, or in any file. C programming provides a set of built-in functions to output the data on the computer screen as well as to save it in text or binary files.
The Standard Files
C programming treats all the devices as files. So devices such as the display are addressed in the same way as files and the following three files are automatically opened when a program executes to provide access to the keyboard and screen.
|Standard File||File Pointer||Device|
|Standard error||stderr||Your screen|
The file pointers are the means to access the file for reading and writing purpose. This section explains how to read values from the screen and how to print the result on the screen.
I don’t know what to thinkHe knelt to the ground and pulled out a ringAnd said, marry me JulietYou’ll never have to be aloneI love you and that’s all I really knowI talked to your dad, go pick out a white dressIt’s a love story baby just say yesOh, oh, oh, oh‘Cause we were both young when I first saw you. Romeo take me somewhere we can be aloneI’ll be waiting all there’s left to do is runYou’ll be the prince and I’ll be the princessIt’s a love story baby just say yesRomeo save me, they try to tell me how to feelThis love is difficult, but it’s realDon’t be afraid, we’ll make it out of this messIt’s a love story baby just say yesOh ohI got tired of waitingWondering if you were ever coming aroundMy faith in you is fadingWhen I met you on the outskirts of town, and I saidRomeo save me I’ve been feeling so aloneI keep waiting for you but you never comeIs this in my head?
The getchar() and putchar() Functions
The int getchar(void) function reads the next available character from the screen and returns it as an integer. This function reads only single character at a time. You can use this method in the loop in case you want to read more than one character from the screen.
The int putchar(int c) function puts the passed character on the screen and returns the same character. This function puts only single character at a time. You can use this method in the loop in case you want to display more than one character on the screen. Check the following example −
Download edraw. Specifies the relationships between components and the importance of it easy to distinguish.When you have a lot of opportunities want to get the graphic display to your needs than is Edraw mind Map is a good choice.
When the above code is compiled and executed, it waits for you to input some text. When you enter a text and press enter, then the program proceeds and reads only a single character and displays it as follows −
The gets() and puts() Functions
The char *gets(char *s) function reads a line from stdin into the buffer pointed to by s until either a terminating newline or EOF (End of File).
The int puts(const char *s) function writes the string 's' and 'a' trailing newline to stdout.
NOTE: Though it has been deprecated to use gets() function, Instead of using gets, you want to use fgets().
When the above code is compiled and executed, it waits for you to input some text. When you enter a text and press enter, then the program proceeds and reads the complete line till end, and displays it as follows −
The scanf() and printf() Functions
The int scanf(const char *format, ..) function reads the input from the standard input stream stdin and scans that input according to the format provided.
The int printf(const char *format, ..) function writes the output to the standard output stream stdout and produces the output according to the format provided.
The format can be a simple constant string, but you can specify %s, %d, %c, %f, etc., to print or read strings, integer, character or float respectively. There are many other formatting options available which can be used based on requirements. Let us now proceed with a simple example to understand the concepts better −
When the above code is compiled and executed, it waits for you to input some text. When you enter a text and press enter, then program proceeds and reads the input and displays it as follows −
Here, it should be noted that scanf() expects input in the same format as you provided %s and %d, which means you have to provide valid inputs like 'string integer'. If you provide 'string string' or 'integer integer', then it will be assumed as wrong input. Secondly, while reading a string, scanf() stops reading as soon as it encounters a space, so 'this is test' are three strings for scanf().