echo '' ;

C Library – stdio.h

The stdio.h header file in C is a standard input-output library that provides functions for input and output operations. It stands for “standard input-output header”. This header file declares several functions, including printf, scanf, fopen, fclose, fread, fwrite, etc., as well as various macros and data types.

  • std
    std
    means Standard and
    io
    io
    means Input-output statements
  • These statements are used to get and put data on computers
  • Ex-1: Can put data to a computer via the keyboard.
  • Ex-2: Can get data and see that in Monitor.
  • Input-output statements are used as a function in c language
  • stdio.h
    stdio.h file contains that statements statements
  • So if we use these functions should include
    stdio.h
    stdio.h , functions are  
    scanf()
    scanf()  ,
    printf()
    printf()   ,
    getchar()
    getchar() ,
    gets()
    gets() ,
    putchar()
    putchar() ,  
    puts()
    puts().

Here’s a brief overview of some commonly used functions and macros declared in stdio.h:

  1. printf: Used to print formatted output to the standard output (usually the console).
  2. scanf: Used to read formatted input from the standard input (usually the keyboard).
  3. fprintf, fscanf, sprintf, sscanf: Variants of printf and scanf for performing formatted I/O operations on files or strings.
  4. FILE: Data type representing a file stream used by functions like fopen, fclose, fread, fwrite, etc.
  5. stdin, stdout, stderr: Predefined file streams representing standard input, standard output, and standard error respectively.

Including stdio.h at the beginning of your C program allows you to use these functions and macros. It’s an essential header file for most C programs, as it provides basic input and output capabilities.


scanf() 

scanf()Description
syntax
int scanf(char *control_string, argument_list);
int scanf(char *control_string, argument_list);

scanf("control strings", &variable_1, &variable_2….&variable_n);
scanf("control strings", &variable_1, &variable_2….&variable_n);

control sting :
%w
%w -(
%
% – conversion specification indicator,
W
W -width of input data)

&
& – address of the variable
RulesShould use comma
,
, to separate the different variables
Same data type variable and data specifier should use.
Returns
scanf()
scanf()  returns the number of data items successfully assigned a value. if an error occurs,
EOF
EOF  is return.
Examples
scanf("%d", &a);
scanf("%d", &a);
scanf("%f", &a);
scanf("%f", &a);
scanf("%d %f %d", &a, &b, &c);
scanf("%d %f %d", &a, &b, &c);
scanf("%c", &sex);
scanf("%c", &sex);
scanf("%s%c", &name, &sex);
scanf("%s%c", &name, &sex);
scanf("%4d", &a);
scanf("%4d", &a);
scanf("%5f", &a);
scanf("%5f", &a);
scanf("%20s", &name);
scanf("%20s", &name);


printf()

  • syntax :
    int printf(char *control strings, argument_list);
    int printf(char *control strings, argument_list);
  • Data format :
    %w.p
    %w.p data-type
  • %
    % -conversion specification indicator
  • w
    w – width of the output data (optional)
  • p
    p – point (dot)
  • Returns:
    printf()
    printf() will return the number of characters printed count values (integer values).

Examples-1: How to print numbers, strings and character

ExampleOutput
printf("Character is %c \n", "A");
printf("Character is %c \n", "A");
Character is A
printf("String is %s \n" , "www.ArunEworld.com");
printf("String is %s \n" , "www.ArunEworld.com");
String is www.ArunEworld.com
printf("Float value is %f \n", 10.234);
printf("Float value is %f \n", 10.234);
Float value is 10.234000
printf("Integer value is %d\n" , 150);
printf("Integer value is %d\n" , 150);
Integer value is 150
printf("Double value is %lf \n", 20.123456);
printf("Double value is %lf \n", 20.123456);
Double value is 20.123456
printf("Octal value is %o \n", 150);
printf("Octal value is %o \n", 150);
Octal value is 226
printf("Hexadecimal value is %x \n", 150);
printf("Hexadecimal value is %x \n", 150);
Hexadecimal value is 96

Examples-2: print the \n using printf()

Code

#include <stdio.h> int main() { printf("\\n"); return printf("\n www.ArunEworld.com"); }
#include <stdio.h> int main() { printf("\\n"); return printf("\n www.ArunEworld.com"); }

Output

\n www.ArunEworld.com -------------------------------- Process exited after 1.403 seconds with return value 20 Press any key to continue . . .
\n www.ArunEworld.com -------------------------------- Process exited after 1.403 seconds with return value 20 Press any key to continue . . .

Example-3: print any value without using the semicolon

Here below four example provided for print the value without semicolon. and going to print the ArunEworld string for all examples.

Method-1: Using if loop

Code:

#include <stdio.h> void main() { if(printf("ArunEworld")) { } }
#include <stdio.h> void main() { if(printf("ArunEworld")) { } }

Output:

ArunEworld
ArunEworld

Method-2: Using while loop

Code:

#include <stdio.h> void main() { while(!printf("ArunEworld")); }
#include <stdio.h> void main() { while(!printf("ArunEworld")); }

Output:

ArunEworld
ArunEworld

Explanation:

  • If you observe the while loop inside, I was mentioned
    !printf("ArunEworld")
    !printf("ArunEworld"). Do you know what is the reason?
  • The
    print()
    print() always returns the number of characters printed on the console.
  • In the above code case, we are printing the ArunEworld string and the string size is 10 characters.
  • When the first time executes the program in the while loop,
    print()
    print() will return 10 decimal value. so the program will continuously run like an infinite loop.
  • In order to avoid infinite times print the string, here mentioned
    !
    ! symbol so whatever positive value getting from
    print()
    print(), it will be considered as the negative value of while loop after first execution and it will stop the next execution.

Method-3: Using switch case

Code:

#include <stdio.h> void main() { switch(printf("ArunEworld")) { } }
#include <stdio.h> void main() { switch(printf("ArunEworld")) { } }

Output:

ArunEworld -------------------------------- Process exited after 0.7511 seconds with return value 10 Press any key to continue . . .
ArunEworld -------------------------------- Process exited after 0.7511 seconds with return value 10 Press any key to continue . . .

Examples-4: Different width and Different Type

Print the decimal value with different width (Ex-1)

Code

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main()
{
int x=8;
printf("%d\n\r",x);
printf("%3d\n\r",x);
printf("%5d\n\r",x);
printf("%-5d\n\r",x);
printf("%07d\n\r",x);
printf("%4d\n\r",-x);
return printf("www.ArunEworld.com");
}
#include <stdio.h> int main() { int x=8; printf("%d\n\r",x); printf("%3d\n\r",x); printf("%5d\n\r",x); printf("%-5d\n\r",x); printf("%07d\n\r",x); printf("%4d\n\r",-x); return printf("www.ArunEworld.com"); }
#include <stdio.h>

int main()
{
	int x=8;
	printf("%d\n\r",x);
	printf("%3d\n\r",x);
	printf("%5d\n\r",x);
	printf("%-5d\n\r",x);
	printf("%07d\n\r",x);
	printf("%4d\n\r",-x);
	return printf("www.ArunEworld.com");
}

Output

8 8 8 8 0000008 -8 www.ArunEworld.com -------------------------------- Process exited after 0.3254 seconds with return value 18 Press any key to continue . . .
8 8 8 8 0000008 -8 www.ArunEworld.com -------------------------------- Process exited after 0.3254 seconds with return value 18 Press any key to continue . . .

Print the different type with different width (Ex-2)

Code:

#include <stdio.h> int main(void) { printf("Strings:\n"); const char* s = "Hello"; printf("printnig S is : % "); printf(s); printf("\n"); printf("\t.%10s.\n\t.%-10s.\n\t.%*s.\n", s, s, 10, s); printf("Characters:\t%c %%\n", 65); printf("Integers\n"); printf("Decimal:\t%i %d %.6i %i %.0i %+i %u\n", 1, 2, 3, 0, 0, 4, -1); printf("Hexadecimal:\t%x %x %X %#x\n", 5, 10, 10, 6); printf("Octal:\t%o %#o %#o\n", 10, 10, 4); printf("Floating point\n"); printf("Rounding:\t%f %.0f %.32f\n", 1.5, 1.5, 1.3); printf("Padding:\t%05.2f %.2f %5.2f\n", 1.5, 1.5, 1.5); printf("Scientific:\t%E %e\n", 1.5, 1.5); printf("Hexadecimal:\t%a %A\n", 1.5, 1.5); }
#include <stdio.h> int main(void) { printf("Strings:\n"); const char* s = "Hello"; printf("printnig S is : % "); printf(s); printf("\n"); printf("\t.%10s.\n\t.%-10s.\n\t.%*s.\n", s, s, 10, s); printf("Characters:\t%c %%\n", 65); printf("Integers\n"); printf("Decimal:\t%i %d %.6i %i %.0i %+i %u\n", 1, 2, 3, 0, 0, 4, -1); printf("Hexadecimal:\t%x %x %X %#x\n", 5, 10, 10, 6); printf("Octal:\t%o %#o %#o\n", 10, 10, 4); printf("Floating point\n"); printf("Rounding:\t%f %.0f %.32f\n", 1.5, 1.5, 1.3); printf("Padding:\t%05.2f %.2f %5.2f\n", 1.5, 1.5, 1.5); printf("Scientific:\t%E %e\n", 1.5, 1.5); printf("Hexadecimal:\t%a %A\n", 1.5, 1.5); }

Output:

Strings: printnig S is : Hello . Hello. .Hello . . Hello. Characters: A % Integers Decimal: 1 2 000003 0 +4 4294967295 Hexadecimal: 5 a A 0x6 Octal: 12 012 04 Floating point Rounding: 1.500000 2 1.30000000000000000000000000000000 Padding: 01.50 1.50 1.50 Scientific: 1.500000E+000 1.500000e+000 Hexadecimal: 0x1.800000p+0 0X1.800000P+0 -------------------------------- Process exited after 2.748 seconds with return value 41 Press any key to continue . . .
Strings: printnig S is : Hello . Hello. .Hello . . Hello. Characters: A % Integers Decimal: 1 2 000003 0 +4 4294967295 Hexadecimal: 5 a A 0x6 Octal: 12 012 04 Floating point Rounding: 1.500000 2 1.30000000000000000000000000000000 Padding: 01.50 1.50 1.50 Scientific: 1.500000E+000 1.500000e+000 Hexadecimal: 0x1.800000p+0 0X1.800000P+0 -------------------------------- Process exited after 2.748 seconds with return value 41 Press any key to continue . . .

Print the different type with different width (Ex-3)

Code:

#include <stdio.h> int main() { printf ("Characters : %c %c \n", 'a', 65); printf ("Decimals : %d %ld\n", 1977, 650000L); printf ("Preceding with blanks : %10d \n", 1977); printf ("Preceding with zeros : %010d \n", 1977); printf ("Some different radices : %d %x %o %#x %#o \n", 100, 100, 100, 100, 100); printf ("floats : %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416); printf ("Width trick : %*d \n", 5, 10); printf ("%s \n", "A string"); return 0; }
#include <stdio.h> int main() { printf ("Characters : %c %c \n", 'a', 65); printf ("Decimals : %d %ld\n", 1977, 650000L); printf ("Preceding with blanks : %10d \n", 1977); printf ("Preceding with zeros : %010d \n", 1977); printf ("Some different radices : %d %x %o %#x %#o \n", 100, 100, 100, 100, 100); printf ("floats : %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416); printf ("Width trick : %*d \n", 5, 10); printf ("%s \n", "A string"); return 0; }

Output:

Characters : a A Decimals : 1977 650000 Preceding with blanks : 1977 Preceding with zeros : 0000001977 Some different radices : 100 64 144 0x64 0144 floats : 3.14 +3e+000 3.141600E+000 Width trick : 10 A string -------------------------------- Process exited after 2.739 seconds with return value 0 Press any key to continue . . .
Characters : a A Decimals : 1977 650000 Preceding with blanks : 1977 Preceding with zeros : 0000001977 Some different radices : 100 64 144 0x64 0144 floats : 3.14 +3e+000 3.141600E+000 Width trick : 10 A string -------------------------------- Process exited after 2.739 seconds with return value 0 Press any key to continue . . .

Examples-5: printf() return type understanding

Code:

#include<stdio.h> int main() { printf("%x", -1<<1); getchar(); return 0; }
#include<stdio.h> int main() { printf("%x", -1<<1); getchar(); return 0; }

Output: Dependent on the compiler. For 32 bit compiler it would be fffffffe and for 16 bit it would be fffe.

Example-6: Printf() and Macro





# include <stdio.h> # define display_in_macro "%s ArunEworld " main() { printf(display_in_macro, display_in_macro); getchar(); return 0; }
# include <stdio.h> # define display_in_macro "%s ArunEworld " main() { printf(display_in_macro, display_in_macro); getchar(); return 0; }

Output :

%s ArunEworld ArunEworld
%s ArunEworld ArunEworld
Explanation: After a pre-processing phase of compilation, the
printf
printf statement will become
"%s ArunEworld "
"%s ArunEworld " in macro place.

Example 7: Print the char pointer string

#include <stdio.h> int main(void) { char *p = "ArunEworld"; printf(p); return 0; }
#include <stdio.h> int main(void) { char *p = "ArunEworld"; printf(p); return 0; }

Output:

ArunEworld
ArunEworld

Compiler [Warning]: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

sprintf()

  • Syntax:
    sprintf()
    sprintf()
  • Description: Prints the formatted output onto the character array.

Example

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
int main(void)
{
char buf[30];
int x = 1, y = 3;
int z = x * y;
sprintf(buf, "Mul : %d * %d = %d", x, y, z);
// into buffer instead of printing on stdout
printf("%s", buf);
return 0;
}
/* Output: Mul : 1 * 3 = 3 */
int main(void) { char buf[30]; int x = 1, y = 3; int z = x * y; sprintf(buf, "Mul : %d * %d = %d", x, y, z); // into buffer instead of printing on stdout printf("%s", buf); return 0; } /* Output: Mul : 1 * 3 = 3 */
int main(void)
{
    char buf[30];
    int x = 1, y = 3;
    int z = x * y;
    sprintf(buf, "Mul : %d * %d = %d", x, y, z);

    // into buffer instead of printing on stdout
    printf("%s", buf);

    return 0;
}

/* Output: Mul : 1 * 3 = 3 */

stdio.h Library Other Functions Syntax

FunctionsSyntaxDescriptions
fputc()
fputc()
fputc(character, file_pointer);
fputc(character, file_pointer);
getchar()
getchar()
var =
getchar();
getchar();
putchar()
putchar()
putchar(var);
putchar(var);
puts()
puts()
puts(var)
puts(var)
Example: puts(“
ArunEworld
ArunEworld“)

NEXT

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Discover more from ArunEworld

Subscribe now to keep reading and get access to the full archive.

Continue reading