Hi there, the blog covers the standard C library with all its library files in C also we tried to include all the C header files with functions, you think it is a C library tutorial
C header files
standard C library is a collection of header files
<stdio.h> <float.h> <math.h> <string.h> <time.h> <limits.h> <assert.h>
The header file is a collection of function’s and variables
syntax for header file
# include <header>
Input and output <stdio.h>
Headerfile | Functions | Description |
<stdio.h> | printf( ) | write the O/P on the display |
scanf( ) | read the I/P from a keyboard | |
main ( ) | always return an integer value |
FILE operations
Headerfile | Functions | Description |
<stdio.h> | FILE *fopen( ) | opens the given file |
| fclose( ) | closes the file |
| rename ( ) | changes the old file name or directory to new name |
| remove ( ) | used to delete a file |
Formatted input
To read a content in the file use fscanf( ), it is same as scanf(). plus,the scanf( ) function read from keyboard and the fscanf( ) function read from the given text file
syntax:
Formatted output
To write a content in the file use fprintf( )function, it is same as printf() function. plus,the printf() function display the content on the screen and the fprintf() function write the content in the given text file
syntax:
fopen( ) function
syntax:
Write an integer into a file With “w” mode
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n =6630; // integer number
FILE *fp; // file pointer fp
fp=fopen("file.txt","w");
if(fp==NULL) // check if the file contain NULL character
{
printf("\n file cannot be open"); // if yes then print, file cannot be open
exit(1);
}
fprintf(fp,"number=%d",n);
fclose(fp); //close file
return 0;
}
output
A file.txt with integer value number =6630 will be created in the current project folder

Read an integer from a file.txt with “r” mode
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
FILE *fp; // file pointer fp
fp=fopen("file.txt","r");
if(fp==NULL) // check if the file contain NULL character
{
printf("\n file cannot be open"); // if yes then print, file cannot be open
exit(1);
}
fscanf(fp,"%d",&n);
printf("\n the number= %d",n);
fclose(fp); //close file
return 0;
}
Output
the number =6630
If a file is opened with “w” mode the existing content of the file will be replaced with given content
Ex: suppose if a file.txt has integer value 20 and if you write the file.txt of 20 value with “w” mode with integer value 50. next, The value 10 will be replaced with 50
Opening a file with append(add) “a” mode
With append(add) “a” mode the content of the existing file.txt will not be replaced with the new content. plus, The new content will be added at the end of the existing text file content
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n =5530; // integer number
FILE *fp; // file pointer fp
fp=fopen("file.txt","a");
if(fp==NULL) // check if the file contain NULL character
{
printf("\n file cannot be open"); // if yes then, print file cannot be open
exit(1);
}
fprintf(fp,"number=%d",n);
fclose(fp); //close file
return 0;
}
Output

Traversing an array with file
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
int arr[10]={1,2,3,4,5,6,7,8,9,10}; // array elements
FILE *fp; // file pointer fp
fp=fopen("file.txt","w");
if(fp==NULL) // check if the file contain NULL character
{
printf("\n file cannot be open"); // if yes then print, file cannot be open
exit(1);
}
for(i=0;i<=9;i++)
{
fprintf(fp,"number=%d\n",arr[i]);
}
fclose(fp); //close file
return 0;
}
Output

Character input and output functions
fgets( ) function
fgets( ) reads a string
Syntax
# include<stdio.h>
int main()
{
FILE *fp;
char string[10];
fp =fopen("text.txt","r");
fgets(string,8,fp);
printf("the content of the file %s", string);
fclose(fp);
return 0;
}
fputs( ) function
writes a string
Syntax
# include<stdio.h>
int main()
{
FILE *fp;
char string[10];
fp =fopen("text.txt","w");
fp =fopen("text.txt","r");
printf("\nenter the text%s", string);
gets(string);// work same as scanf()
fputs(string,fp);
printf("\nthe content of the file %s",string);
fclose(fp);
return 0;
}
Direct input and output functions
fprintf() and fscanf() are the functions to open a file in text mode. plus, fread() and fwrite() are the functions to open a file in binary mode
Syntax
writing and reading an int value from a file
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num=6630;
FILE *fp;
fp=fopen("sample.txt","wb");
fwrite(&num, sizeof(num),1,fp);
fclose(fp);
fp =fopen("sample.txt", "r");
fread(&num, sizeof(num),1,fp);
printf("num=%d",num);
fclose(fp);
return 0;
}
Output
num=6630
writing and reading an array from a file
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr[8]={1,2,3,4,5,6,7,8};
int i;
FILE *fp;
fp=fopen("sample.txt","wb");
fwrite(&arr, sizeof(arr),1,fp);
fclose(fp);
fp =fopen("sample.txt", "rb");
fread(&arr, sizeof(arr),1,fp);
for(i=0;i<8;i++)
{
printf("num=%d\n",arr[i]);
}
fclose(fp);
return 0;
}
Output
num=1
num=2
num=3
num=4
num=5
num=6
num=7
num=8
writing and reading first 4 elements of an array
fp=fopen("sample.txt","wb");
fwrite(&arr, sizeof(arr),4,fp);
fp =fopen("sample.txt", "rb");
fread(&arr, sizeof(arr),4,fp);
File positioning function’s
Ftell ( ) function
Ftell( ) function return’s the present file location
Syntax
text.txt
One,two,three
#include <stdio.h>
#include <stdlib.h>
int main () {
FILE *fp;// file pointer fp
int length;
fp = fopen("text.txt", "r");
if(fp==NULL) // check if the file contain NULL character
{
printf("\n file cannot be open"); // if yes then print, file cannot be open
exit(1);
}
fseek(fp, 0, SEEK_END);
length = ftell(fp);
fclose(fp);
printf("Total size of text.txt = %d bytes\n", length);
return(0);
}
Output
Total size of text.txt =13 bytes
fseek() function
help us to seek an arbitrary position in the file
syntax
Origin
Sample.txt file
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char str [20];
fp =fopen("sample.txt","r");
if(fp==NULL)
{
printf("\n cannot open file");
exit(1);
}
fgets(str,20,fp);
printf("before SEEK_SET %s\n",str);
fseek(fp,4,SEEK_SET);
fgets(str,20,fp);
printf("after SEEK_SET%s\n", str);
fseek(fp,4,SEEK_CUR);
fgets(str,20,fp);
printf("after SEEK_CUR %s\n", str);
fseek(fp,-4,SEEK_END);
fgets(str,20,fp);
printf("after SEEK_END %s\n", str);
fclose(fp);
return 0;
}
Output
before SEEK_SET one,two,three
after SEEK_SET two,three
after SEEK_CUR two,three
after SEEK_END hree
String Functions <string.h>
Strncmp()function
Strncmp compares two string first n characters
Syntax
Strncmp(s1,s2,n);
S1 is string1
S2 is string2
n is the number of character that you like to compare
return’s
firstly, <0 means s1 is less than s2
secondly, >0 means s1 is greater than s2
thirdly,=0 means s1 and s2 are equal
#include <stdio.h>
#include<string.h>
int main()
{
char a[10]= "hello";
char b[10]="hello";
int c;
c=strncmp(a,b,4);
printf("c=%d", c);
return 0;
}
Output
c=0
strcpy() function
the strcpy () copies the source string to the target string
syntax
char* strcpy(char* target, const char* source);
#include <stdio.h>
#include <string.h>
int main() {
char s1[10] = "hi_there";
char s2[10];
// copies the s1 to s2
strcpy(s2, s1);
printf("%s",s2);
return 0;
}
Output
hi_there
remember: in comparison, the size of the target string has to be bigger then the source string
Math functions <math.h>
Utility functions <stdlib.h>
Headerfile | Functions | Description |
stdlib.h | exit( ) | terminate the program |
abort( ) | terminate the program abnormally | |
free( ) | delete the space | |
malloc ( ) | used to allocate memory to structures | |
calloc ( ) | used to allocate memory to arrays | |
realloc ( ) | used to increase or Decrease the size of the array | |
rand ( ) | returns random integers in the range 0 to RAND_MAX |
Implementation defined limits <limits>
Header files are a collection of functions and variables where as limits.h contains only variables in standard C library. plus,The variable in the limits.h is “global“(access anywhere in the program )and”constant“(values can not be changed )
What is an Assertion <assert.h>
Assert are a pre-processor macro present in standard C library, ideally used for finding the bugs faster and to use assert, you need to include header file such as <cassert> or <assert.h>
Syntax
assert(check_the _condition);
program more defensively
a common misconception about assertion that once’s the code is tested and shipped.next, assertions are no longer needed and Assertions should be turn off, to make code faster
According to “the pragmatic programmer book”(page no 123) for any complex program turning assertion’s off , ahead you give your code to production. it’s like walking on the high wire without a safety wire
Sample program
#include <iostream>
#include <cassert>
using namespace std;
int main()
{
int n;
cout<<" Enter a number";
cin>>n;
assert(n!=0);
cout<<"Condition is true";
return 0;
}
Assertion failed error

The above program check’s a Boolean condition that ‘n’ should not be equal to zero. first of all, If the condition is true then not a thing will change
second, if the condition is false. next, the program will crash( abort)
the compiler will show you the line number, where the assertion statement failed,
It will be easy for you find the bug in the code.To sum up, assertions check the things which should not happen. plus, if something does not make any sense you will be the first one to know
when the assert statement condition is false.for that reason,the error assertion failed happened
resources
- Let us C by Yashavant Kanetkar
- Let us C++ by Yashavant Kanetkar
- The C programming language by Brian w.Kernighan Dennis M.Ritchie
Leave a Reply