This blog is under construction

Thursday, 2 January 2014

Character Input and Output functions in C

The following are the built in functions available in C which can be used to to perform character input & output operations.

int fgetc(FILE *stream)
It reads the next character from the stream and returns the integer(ascii) value of the character read.

int fputc(int c, FILE *stream)
It writes the character c on the given stream.  Returns the written character on success.  Otherwise, EOF is returned.

fgetc and fputc example in C

  #include <stdio.h>
  int main() {
        int ch;
        /* prints the input data on the output screen */
        while ((ch = fgetc(stdin)) != EOF) {  //ctrl + D to exit
                fputc(ch, stdout);
        }
        return 0;
  }

  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  hello world
  hello world



int getc(FILE *stream);
It reads the next character from the given stream. It evaluates the given stream more than one time, if it is a macro.  Returns integer value(ascii) of the character read.

int putc(int c, FILE *stream);
It writes the character c into the given stream.  It evaluates the given stream more than once, if it is a macro.  Returns the integer value(ascii) of the written character on success, EOF on failure.

getc and putc example in C


  #include <stdio.h>
  int main() {
        int ch;
        /* prints the input data on the output screen */
        while ((ch = getc(stdin)) != EOF) {  //ctrl + D to exit
                putc(ch, stdout);
        }
        return 0;
  }

  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  hello world
  hello world



char *fgets(char *str, int n, FILE *stream)
It reads n-1 character from the input stream, stops reading if a newline character is encountered; newline + '\0' is included at the end of input string. String str is returned as the return value on success.  Otherwise, NULL is returned.


int fputs(const char *str, FILE *stream)
It writes the string str on stream.  Returns the non-negative integer on success, EOF on failure.

fgets and fputs example in C

  #include <stdio.h>
  int main() {
        char str[256];
        printf("Enter your input string:");
        fgets(str, 256, stdin);  // gets input from standard i/p
        printf("Below is your input string:\n");
        fputs(str, stdout);  // prints str in standard o/p screen
        return 0;
  }

  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  Enter your input string:India is my country
  Below is your input string:
  India is my country



int getchar(void)
Inputs a character.  Returns the integer value(ascii) of the character read.

int putchar(int c)
Write character c on standard output.

getchar and putchar example in C

  #include <stdio.h>
  int main() {
        int ch;
        /* prints the input data on the output screen */
        while ((ch = getchar()) != EOF) {
                putchar(ch);
        }
        return 0;
  }

  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  hello world
  hello world



char *gets(char *str)
Gets the given input string into the character array str.  Returns str on success, EOF or NULL is returned on failure.

int puts(const char *str)
It writes the given string and a newline to stdout.  Returns non-negative integer on success, EOF is returned on failure.

gets and puts example in C

  #include <stdio.h>
  int main() {
        char str[256];
        printf("Enter your input string:");
        gets(str);  // gets input from standard i/p
        printf("Below is your input string:\n");
        puts(str);  // prints str in standard o/p screen
        return 0;
  }

  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  Enter your input string:Hello world
  Below is your input string:
  Hello world



int ungetc(int c, FILE *stream)
It pushes character c back onto the given stream.  Returns character c on success, EOF on failure.

ungetc example in C

  #include <stdio.h>
  int main() {
        char ch;
        while ((ch = getchar()) != EOF) {  // ctrl + d is EOF
                if (ch == '\n') {
                        /*
                         * pushes # to stdin.. So, getchar()
                         * would read the character '#' on its
                         * subsequent call
                         */
                        ungetc('#', stdin);
                        continue;
                }
                putchar(ch);
        }
        return 0;
  }

  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  india             
  india#


Note:
fgetc, fputc, fgets, fputs, getc and putc are the built-in functions used to perform character input output operation on files.


No comments:

Post a Comment