C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file

Miscellaneous

C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Char Array to String in C++ Constructor Overloading in C++ Default arguments in C++ Different Ways to Compare Strings in C++ Dynamic Binding in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++ Exception Handling in C++ vs Java Const Keyword in C++ Type Casting in C++ Static keyword in C++ vs Java Inheritance in C++ vs Java How to concatenate two strings in C++ Programs to Print Pyramid Patterns in C++ swap() function in C++ Structure of C++ Program Stringstream in C++ and its applications rand() and srand() in C / C++ C++ Ternary Operator C++ Scope of Variables While Loop Examples in C++ Star pattern in C++ using For Loops For Loop Examples in C++ Do-While Loop Examples in C++ Top 5 IDEs for C++ That You Should Try Once Assertions in C/C++ C++ Convert Int to String Continue in C++ While loop Diamond Pattern in C++ using For Loop How to Reverse a String in C++ using Do-While Loop How to Reverse a String in C++ using For Loop How to Reverse a String in C++ using While Loop Infinite loop in C++ Loops in C++ Returning Multiple Values from a Function using Tuple and Pair in C++ wcscpy(), wcslen(), wcscmp() Functions in C++ Auto keyword in C++ C++ 11 vs C++ 14 vs C++ 17 C++ STL (Standard Template Library) Differences Between C Structures and C++ Structures Divide by Zero Exception in C++ Dynamic Constructor in C++ Dynamic Memory Allocation in C++ Find the Size of Array in C/C++ without using sizeof() function Floating Point Operations and Associativity in C, C++ and Java Hello World Program in C++ How to create a table in C++ How to Setup Environment for C++ Programming on Mac Implementation of a Falling Matrix in C++ Message Passing in C++ Pointer to Object in C++ Templates in C++ vs Generics in Java Ways to Copy a Vector in C++ What does Buffer Flush mean in C++ sort() function in C++ Structure Sorting (By Multiple Rules) in C++ Similarities between C++ and Java std::distance in C++ Array program in C++ C++ Tricks for Competitive Programming Desired Capabilities in Selenium Web Driver in C++ Socket Programming in C++ Template Specialization in C++ Classes and Objects in C++ Convex hull Algorithm in C++ DES in C++ C++ vardiac() function Difference between Two Sets in C++ Difference between Exit and Return Structured Binding in C++ Differences between Local and Global Variable Bitwise Operator vs Logical Operator Difference between OOP and POP in C++ Fork in C++ Functors in C++ How to call a void function in C++ How to create a directory or folder in C/C++ How to create a library in C++ How to create a stack in C++ How to create the Processes with Fork in C++ How to Handle Divide by Zero Exception in C++ Lambda Expression in C++ Pattern programs in C++ Roadmap to C++ Programming Substring in C++ Virtual base class in C++ Bits stdc++.h in C++ Top 14 Best Free C++ IDE (Editor & Compiler) for Windows in 2022 Bitmasking in C++ Auto Keyword in C++ Features of OOPS in C++ Hospital Management Project in C++ How to Declare Unordered Sets in C++ How to Sort an Array in C++ Include Guards in C++ Iostream in C++ Method overriding in C++ How to run program in turbo c++ How to Use Getline in C++ Leap Year Program in C++ Naming Convention in C++ New Operator in C++ Nullptr in C++ Object Slicing in C++ Principles of Object-Oriented Programming in C++ Processing strings using std string stream in C++ Pure Virtual Function in C++ With Example Program Random Number Generator in C++ Singleton Design Pattern in C++ Size_t Data Type in C++ Skyline Problem in C++ System() function in C++ Web Development in C++ Data Hiding in C++ Difference between exit() and _Exit() in C++ Hashing in C++ Object in C++ Sum of all Elements between k1’th and k2’th Smallest Elements Virtual class in C++ Vector Size in C++ Top best IDEs for C/C++ Developers in 2022 Tensorflow in C++ Sliding Window Technique in C++ Reverse String Word-Wise in C++ Returning a Function Pointer from a Function in C/C++ RTTI in C++ Pthreads or POSIX Threads in C++ Reserved Keywords in C++ Passing a Vector to a function in C++ 10 Best C and C++ Books for Beginners & Advanced Programmers Add two numbers represented by two arrays in C++ Array of Object in C++ C++ Program For FCFS Containership in C++ Counting Frequencies of Array Elements in C++ Decltype type Specifier in C++ Dynamic _Cast in C++ Difference between int main() and int main(void) in C/C++ Depth First Search Program to Traverse a Graph in C++ Features and Use Of Pointers in C/C++ Fread Function in C++ Programming Fscanf Function in The C++ Functions in C++ With Types and Examples Gmtime Function in C/C++ How is Multiset Implemented in C++ How to Build a Program in C++ How to Declare a 2d Array Dynamically in C++ inheritance Program in C++ int Max and int Min in C/C++ is It Fine to Write Void Main Or Main in C/C++ How to create a button in C++ abs() function in C++ Compile Time Polymorphism in C++ Division in C++ Factorial of a Number in C++ using while Loop Multiset in C++ 4 Pillars of OOPs Approach in C++ Backtracking Time Complexity in C++ C++ Global Variable C++ Pipe Tutorial Observer Design Pattern in C++ Private Inheritance in C++ Pthread in C++ Parameters SDL library in C++ with Examples Pointers in C++ Ascending order in C++ How the value is passed in C++ Call by Pointer in C++ Constexpr in C++ Deadlock in C++ Design Patterns in C++ Factory Method for Designing Pattern in C++ How to calculate size of string in C++ Name Mangling and extern in C++ Preventing Object Copy in C++ Program that produces different results in C and C++ Quick Sort in C++ Single Handling in C++ Type difference of Character literals in C VS C++ Use of Inheritance in C++ User-defined literals in C++ Vector methods in C++ Void * in C and C++ Zombie and Orphan Process in C++ Isprint() in C++ List and Vector in C++ List iterators in C++ Merging Two Vectors in C++ Sleep function in C++ Stoi function in C++ String erase() in C++ String Trim in C++ When should we write own Assignment operator in C++ C++ tcp client server example C++ tcp server example Early Binding and Late Binding in C++ Factory Design Pattern in C++ Fisher-Yates shuffle algorithm in C++ For Auto in C++ Group anagrams in C++ How to convert binary string to int in C++ How to convert string to float in C++ How to remove space from string in C++ How to use pair in C++ How to use the string find() in C++ Dynamic Casting in C++ 2D Vector Initialization in C++ C++ GUI Visual Studio C++ IPC C++ Macro Function Example C++ Permutation Overloading Stream Insertion in C++ Overloading array Index operator in C++ Operators that cannot be overloaded in C++ Operator overloading in C++ isprint() function in c++ Is_trivial function in C++ Is assignment operator Inherited in C++ div() function in C++ Default Assignment Operator and References in C++ Copy Constructor vs Assignment Operator in C++ Conversion Operator in C++ Array sum in C++ STL C++ Define Macro C++ Design C++ Factory Pattern TCP Client Server Example in C++ Convert String to Uppercase in C++ exit() and _Exit() in C and C++ Initializer list in C++ Iterator invalidation in C++ Lower bound in C++ Modulus of Two float numbers or double number Pass by value in C++ Set insert function in C++ Std partition_point in C++ Unary Operator Overloading in C++ Using Default Arguments with Virtual Functions Virtual Functions and Runtime Polymorphism What is endl in C++ What is Unary Operator Overloading in C++ Which operators cannot be overloaded in C++? rint(), rintf(), rintl() in C++ Stack size in C++ String append() function in C++ String push_back() in C++ String replace() in C++ Transform function in C++ Unique in C++ Unordered_map in C++ Binary String to Int C++ Boost C++ ctime() function in C++ Difference Between Overloading and Overriding in C++ Exception handling in constructor and destructor in C++ Explain class template in C++ Fesetround() and Fegetround() in C++ and their application Gets() and Puts() in C++ Hypot(), hypotf() and hypotl() in C++ Kadane Algorithm in C++ Log function in C++ Map of Pairs in STL Map vs unordered_map in C++ Nearbyint() Function in C++ Pair in C++ Access Specifiers in C++ Add Two Numbers in C++ Using Class Benefits of Operator Overloading in C++ C++ Socket Programming Windows C++ Program for Addition of Two Numbers Using Functions C++ Programming Examples C++ Protected Inheritance C++ Return Object Static Data Members in C++ Program for COPY Constructor in C++ Association in C++ C_str in C++ Boost libraries in C++ C++ macro function Assignment Operator Overloading in C++ Automatic Storage Class in C++ Function Object in C++ C++ Move Constructor Cast in C++ C++ 11 Lambda C++ Multithreading Bottom-up Approach in C++ C++ Program to Divide the String Into N equal Parts Gray Code to Binary Code in C++ How to get the value of pi in C++ Multimap value_comp() function in C++ Vector of Vectors in C++ Naïve Bayes Algorithm in C++ f 10 C++ Programming Tricks You Should Know btowc() function in C++ forward_list::cend() in C++ Unordered_multimap max_load_factor() function in C++ Cpp_int in c++ Dynamic Objects in C++ FLOCK() FUNCTION IN C++ Generate Random Double Numbers in C++ How to Assign Infinity to a Number in C++ Jump statements in C++ Multipath inheritance in C++ Out of Range Exception in C++ Size of Class in C++ Size of string in C++ std::binary_negate in c++ Thread_local in C++ Tokenizing a String in C++ Ancestors of a Node in Binary Search Tree C++ program for Double to String Conversion C++ Program to Demonstrate Use of Formatting Flags on Float Output Clamp in C++ K-Dimensional Tree in C++ Mutable Lambda in C++ Power Set in C++ Program to Find Sum of Geometric Progression Std::Back_inserter in C++ Strpbrk() function in C++ Size of int in C++ TYPES OF MANIPULATORS IN C++ Double colon in C++ How to sort vector in C++ How to use Setprecision in C++ How to write a Vector in C++ Insertion in Splay Tree in C++ Merge Sort Algorithm in C++ Printing a Character using ASCII value in C++ Regex in C++ Size of Data Types in C++ Abstract Factory Design Pattern in C++ Sqrtf() function in C++ Static Casting in C++ Using Range in Switch Case in C++ wcstoimax() and wcstoumax() function in C++ What is float in C++ What is the Diamond Problem in C++ Best way to learn C++ ios setstate() function in C++ Nested Namespace in C++ Single Inheritance in C++ std::fixed, std::scientific, std::hexfloat, std::defaultfloat in C++ StringStream in C++ for Decimal to Hexadecimal and back The OFFSETOF() macro in C++ Semaphores in C++ Seekg in C++ stacktrace Header file in C++ 23 std::future in C++ std::unary_negate() in C++ Difference between std::endl and \n in C++ Iswspace Function in C++ Difference between std-next and std::advance in C++ Hiding of all overloaded methods with same name in base class in C++ C++ program to concatenate two strings using operator overloading Difference between array::fill() and array::swap() in C++ Difference between Friend Function and Virtual Function in C++ Semaphores in C++ UDP server- client implementattion in C++ What is long long in C++ CSV file management using C++ fma() function in C++ Toggle bits of a number except first and last bits in C++ Trailing Return Type C++ 11 Binary search implementation in C++ Different Versions of C++ What is Cascading in C++ Background Colour in C++ BOOL DATATYPE IN C++ BIT VECTORS IN C++ Literals in C++ Application of pointer in C++ Index with minimum sum of prefix and suffix sums in an array in C++ Maximum sum Bi-tonic sub-sequence in C++ std::optional in C++ C/C++ program for triangular matchstick number COUT COMMAND IN C++ LANGUAGE Adjacency matrix program in C++ language Exception Objects in C++ Difference between Null String and Empty String in C++ Character data type in c++ Constructors in Inheritance C++ Comma Operator Overloading in C++ Typename in C++ C++ Friend Class C++ Exceptions Difference Between C and C++ Double-linked list program in C++ Color Code in C++ CRC Program in C++ Anti-Clockwise spiral traversal of a binary tree in C++ Advantages of OOP in C++ Cryptarithmetic Puzzle in C++ Angular sweep algorithm in C++ Factorial of Large Numbers in C++ endl Function in C++ vfprintf() method in C++ Check if a given number is Pronic in C++ Difference between Fundamental Data Type and Derived Data Types in C++ Different Ways to initialize an unordered_set in C++ Dinic’s Algorithm in C++ How to read whole ASCII File into C++ using std::string? std::unary_negate() in C++ String::npos function in C++ type_traits::is_null_pointer in C++ C++ code to count the local extrema of given array Demlo number (square of 11....1) in C++ Function Template and Class Template in C++ Getline in C++ GUI Design in C++ Hashing Implementation in C++ HIERARCHICAL INHERITANCE IN C++ Hospital Management System in C++ How to Add Header Files in Dev C++? How to cin string in C++ How to compile a C++ program in Visual Studio code Iscntrl in C++ Memento Pattern in C++ Smarandache-Wellin Sequence in C++ The feclearexcept in C++ HashMap in C++ Alexander Bogomolny's UnOrdered Permutation Algorithm in C++ Convex Polygon in C++ Count Univalue Subtrees in C++ Entringer Number in C++ Friends pairing Problem in C++ Klee's Algorithm (Length of the union of segments of a line) in C++ Spaceship Operator(&|t;==>) in C++ Uniform Initialization in C++ Woodall Number in C++ C++ Program to Solve Knapsack Problem Using Dynamic Programming How do you exit from the infinite loop in Turbo C++? How to create a game using C++ language How to do XOR in C++? How to Find Max Value in Array C++ How to get date in C++ Pointer to a Derived Class in C++ C++ program to show runtime exceptions Convert a Singly LinkedList to XOR LinkedList in C++ Creation of Variable in C++ CRTP (curiously recurring template pattern) in C++ Euler Circuits in Directed Graphs Using C++ Final NBA Match pairing in C++ Find pivot in rotated sorted array in C++ How to make a square in C++ How to reduce fractions in C++ std::lerp in C++ Stella Octangula Numbers in C++ Return Statement in C++ Finding the n-th Fortune Number in C++ How to use StringStream in C++ Minimize Count of Unequal Elements at corresponding Indices between give n arrays in C++ std::midpoint in C++ std::transform inclusive scan in C++ std::span in C++ Types of Errors in C++ C++ program to implement the bin packing algorithm Dereference Operator in C++ How to merge multiple std::sets into a single std::set in C++? Stack Clear C++ Structure and Class in C++ Template Definition in C++ Tree Data Structure in C++ Typename in C++ Program in C++ for Beginners Restoring a Shuffled Queue in C++ Print patterns in C++ Hybrid Inheritance in C++ How to use OpenGL in C++? How to Separate a String in C++ Havel-Hakimi algorithm in C++ Find the size of all connected Non-Empty Cells of a Matrix in C++ Burst Sort Algorithm in C++ Basic istream peak() method in C++ Addition of two matrices in C++ What is std reference wrapper in C++? What is std mbrtoc 32 in C++? What is std istreambuf iterator in C++? What is std declval in C++? std rethrow if nested in C++ std regex search in C++ std ctype byname in C++ std call once in C++ std basic ios copyfmt in C++ std atomic ref in C++ Properties of Friend Function in C++ Sophie Germain Prime number in C++ Centroid Decomposition in C++ How to Get the List of All Running Tasks in C++ Programming Questions on Function Overloading in C++ std codecvt in and std codecvt do in in C++ std is constant evaluated in C++ Std put money in C++ Number of ordered pairs such that Ai Aj = 0 in C++ dlsym() function in C++ Isxdigit() function in C++ Difference between Objective C and C++ Menu Driven Program in C++ Undulating Numbers in C++ How to Access Private Variables in C++? Particle Swarm Optimization in C++ Understanding std::ios_base::iword in C++ std::piecewise_construct _t in C++ Toeplitz Matrix in C++ Two-Way Linear Search Algorithm in C++ C++ Concurrency in action C++ integer size C++ Enum class Compare two lists in C++ Command to run C++ Program in terminal Cascading In C++ Static Member Function in C++ with Example C++ Multiple, Multilevel and Hierarchical inheritance Painting Fence Algorithm in C++ Rearrange Distant Barcodes in C++ What are the rules for using an Underscore in a C++ dentifier? std::quoted in C++ Std::memory_order in C++ Std::fisher_f_distribution in C++ Advantages Oops in C++ floor() and ceil() function in C++ Topological Sort in C++ How to get file size in C++ Class Meaning in C++ DIFFERENCE BETWEEN NEW AND DELETE OPERATOR IN C++ New and Delete In C++ Operators in C++ String data types in C++ begin() in C++ Static Library Linking in C++ Stack Unwinding in C++ Singleton Pattern in C++ Shared_ptr in C++ Random Number between 1 and 10 in C++ Initializer in C++ Error Handling in C++ Define Reference in C++ Create a Class in C++ C++ Move Semantics What is Thread Id to Int in C++? What is a Static Member Function in C++? Using Keyword in C++ C++ IDE Linux C++ Mini Project With Source Code and Output All swing components C++ Syntax Link Call By Value And Call By Reference In C++ Const ptr c++ Const_cast C++ Constant Arguments in C++ Example of parameterized constructor in C++ example of user-defined data type Anonymous object in C++ Bank program in C++ Base class and Derived class in C++ Cerr in C++ Cin string in C++ cin.get() in C++ Containers in C++ Control flow statement in C++ coroutine in C++ cstdlib in C++ Difference between encapsulation and Abstraction Difference between template and macro in C++ Emplace_back in C++ Cstdio in C++ Exception specification in C++ Files and streams in C++ Hamming code implementation in C++ Map cbegin() and cend() function in C++ STL Map Emplace_hint() function in C++ STL Naked function calls in C++ Private destructor in C++ Static object in C++ unordered_set in C++ Uses of namespace std in C++ Virtual function and virtual base class in C++ VS Code Setup for C++ Vtable and vptr in C++ fixed() function in C++ How to remove an element from an array in C++ How to take space-separated input in C++ iomanip in C++ Isdigit() function in C++ noexcept in C++ rdbuf() in c++ seekg() function in C++ Seekp() function in C++ Setw() in C++ The diamond pattern in C++ Advantages and Disadvantages of Inheritance in C++ C++ Variables Types Explain Access Specifiers in C++ Anagram Program in C++ AREA OF TRIANGLE IN C++ ARRAY INPUT IN C++ Big Integers in C++ Bitwise Operator in C++ Data Structures Algorithms and Application in C++ EOF Function in C++ Explicit in C++ File Opening Mode in C++ Friend Function in C++ Function Overriding in C++ How to Copy in Turbo C++? How To Use POW in C++ Increment Operator in C++ Inline Functions in C++ Int range in C++ Integer in C++ Linked List in C++ malloc() and calloc() in C++ Maximum Value in Vector in C++ NPTEL Programming in C++ Assignment Solutions SHARED POINTER IN C++ Vector in C++ Stl What is an Object in C++ What is Copy Constructor in C++ Dereferencing a Pointer in C++ fill() Function in C++ map find() function in C++ Associative Containers In C++ C++ generic programming introduction Character Set in C++ Class and Structure in C++ Decltype in c++ Difference Between Abstraction and Interface in C++ File Stream in C++ Final in C++ Final Keyword in C++ Find substring in C++ Flush in C++ Has-A Relationship in C++ How to allocate memory dynamically in C++ How to close turbo C++ in windows 10 How to Use Modulus in C++ How to use Set in C++ Input and Output Operators in C++ Insert Function in C++ MENU DRIVEN PROGRAM IN C++ MOVE SEMANTICS IN C++ OOPs Interview Questions in C++ PARAMETER PASSING IN C++ PUNCTUATORS IN C++ SPLIT FUNCTION IN C++ Stream Classes in C++ Vector declaration in c++ Vector in C++ Virtual Function in C++ Binary Search Tree Program in C++ Built-in Types in C++ API in C++ Returning Object from a Function in C++ C++ Singleton C++ Template Class Declaration and Definition Tree in C++ C++ Type Traits Catch All Exceptions in C++ Lvalue and Rvalue in C++ Move Constructor in C++ Move Semantics in C++ Mutex Lock in C++ Qt in C++ Tutorial STL Algorithms in C++ Access Class members in C++ Designated initializers in C++ Dynamic Initialization of Objects in C++ Inbuilt Functions in C++ Metaclass in C++ Nesting of a member function in C++ Unique_ptr() in C++ Vector erase() function in C++ Vector insert() Function in C++ 10 important concepts of Oops in C++ At in C++ Difference Between Abstraction and Encapsulation in C++ Difference between Function Overloading and Operator Overloading in C++ Exception Specifications in C++ Examples of Destructor in C++ Examples of Hybrid Inheritance in C++ How to declare an Array in C++ How to declare string in C++ Instance variable in C++ Manipulators in C++ Pointer Declaration in C++ preprocessor in C++ Push_Back() Function in C++ Space in C++ String stl in c++ Edmonds Karp algorithm in C++ How to Create Singleton Class in C++ Static Polymorphism in C++ Associative Containers In C++ C++ generic programming introduction Character Set in C++ Class and Structure in C++ Decltype in c++ Difference Between Abstraction and Interface in C++ File Stream in C++ Final in C++ Final Keyword in C++ Find substring in C++ Flush in C++ Has-A Relationship in C++ How to allocate memory dynamically in C++ How to close turbo C++ in windows 10 How to Use Modulus in C++ How to use Set in C++ Input and Output Operators in C++ Insert Function in C++ MENU DRIVEN PROGRAM IN C++ MOVE SEMANTICS IN C++ OOPs Interview Questions in C++ PARAMETER PASSING IN C++ PUNCTUATORS IN C++ SPLIT FUNCTION IN C++ Stream Classes in C++ Vector declaration in c++ Vector in C++ Virtual Function in C++ Associative Containers In C++ C++ generic programming introduction Character Set in C++ Class and Structure in C++ Decltype in c++ Difference Between Abstraction and Interface in C++ File Stream in C++ Final in C++ Final Keyword in C++ Find substring in C++ Flush in C++ Has-A Relationship in C++ How to allocate memory dynamically in C++ How to close turbo C++ in windows 10 How to Use Modulus in C++ How to use Set in C++ Input and Output Operators in C++ Insert Function in C++ MENU DRIVEN PROGRAM IN C++ MOVE SEMANTICS IN C++ OOPs Interview Questions in C++ PARAMETER PASSING IN C++ PUNCTUATORS IN C++ SPLIT FUNCTION IN C++ Stream Classes in C++ Vector declaration in c++ Virtual Function in C++ Babylonian Square Root Algorithm in C++ C++ Delegates Complex Number Program in C++ Custom Sort in C++ Differences Between C++ and JavaScript Meta Classes in C++ Prim’s Algorithm in C++ RAII in C++ How to access set elements in C++ How to Allocate and Deallocate Memory in C++ How to Convert String to Lowercase in c++ How to initialize a string in C++ How to Input a String in C++ Ignore Function in C++ Image Recognition Algorithm in C++ Insertion Sort Algorithm in C++ Knapsack Problem in C++ LOG BASE 2 IN C++ LOOPING STATEMENT IN C++ Managing Output with Manipulators in C++ Max Heap in C++ mbrlen- function in C-C++ Merge Overlapping Intervals in C++ Merge Sort Recursive in C++ Methods to Sort Strings in C++ Multiline Comment in C++ Multiple catch statements in C++ Naïve Bayes Algorithm in C++ Needleman Wunsch Algorithm in C++ Object delegation in C++ Pass 2 Assembler Program in C++ ratio_less_equal() function in C++ Rethrowing an exception in C++ Return type in C++ Reusability in C++ Round Robin Scheduling Program in C++ Sequence Container in C++ Sieve of Eratosthenes in C++ SOLID PRINCIPLES IN C++ STACK USING PUSH POP PROGRAMME IN C++ Stdlib Header File in C++ Strcmp function in C++ strcmpi in C++ Find minimum s-t cut in a flow network in C++ Hamilton Cycle Detection in C++ list cbеgin() and cеnd() function in C++ Maximum Bipartite Matching in C++ Neural Network in C++ Otsu Thresholding Opencv C++ Pancake Sorting in C++ Pimpl Idiom in C++ Print All Interleavings of Given Two Strings in C++ Print the Corner Elements and their Sum in a 2-D Matrix in C++ reinterpret_cast in C++ Rotate Bits of a Number in C++ Shallow Copy in C++ Stable Marriage Program in C++ Stack Smashing Detected in C++ Static Data Member in C++ String::npos in C++ Thread safe queue in C++ Total Keywords in C++ Tug of War in C++ What Kind of Exceptions are Available in C++ Which Operator is Used to Allocate Memory for an Object Boundary Traversal of Binary Number in C++ Difference between POP and OOP in C++ Fundamentals of Data Structures in C++ C++ Constructor Return Type C++ Libraries C++ STL Tutorial C++ Throw Character String in C++ Clone a Linked List with Next and Random Pointer in C++ Counting Sort in C++ Diffеrеncе Bеtwееn dеquе::cbеgin and dеquе::assign in C++ Difference between Null and Nullptr in C++ Facade Pattern in C++ Semaphore in C++ Accumulate function in C++ Algorithm Header File in C++ Applications of C++ basic_istream::putback() in C++ Benefits of OOPs Boost library in C++ Bubble Sort in C++ C++ Override C++ Struct Public Throw Exception in C++ Call by Rеfеrеncе in C++ Character in C++ Characteristics of friend function in C++ Cin Getline in C++ Collections in C++ Composition in c++ Continue Statement in C++ Developing a Digital Synthesizer in C++ Different C++ Versions Diffеrеncе Bеtwееn Friеnd Function and Virtual Function in C++ Find a triplet from three linked lists with a sum equal to a given number in C++ Fizz Buzz Problem in C++ Forward list in C++ Friend Function and Friend Class in C++ Advantages of Function Overloading in C++ Game Library for C++ HashSet in C++ Heapify Algorithm in C++ Hopcroft Karp algorithm in C++ String find function in C++ Tellg in C++ The lower_bound in C++ The sum of digits in C++ Thinking in C++ language THIS FUNCTION IN C++ Tower of Hanoi Algorithm in C++ Transpose of a Matrix in C++ language Types of Execution in C++ Use of explicit keyword in C++ User-defined header files in C++ Vector of String in C++ Virtual Table in C++ Visibility Mode in C++ What are Literals in C++ What are manipulators in C++ Abstract Data Type in C++ POP full form in C++ 8-puzzle Problem Using Branch and Bound in C++ BK tree in C++ Decorator pattern in C++ Fusion tree in C++ Jump Pointer algorithm in C++ std::remove_extent in C++ Tabu search in C++ Nested structure in C++

Cstdio in C++

In this article, we will discuss the cstdio header file in C++ with its functions and examples.

The "cstdio" header file in C++ is used to handle input and output operations. It includes declarations for functions that manage file input and output operations in addition to handling conventional input and output.

The Standard Library, which is a set of classes, methods, and templates made available by the C++ Standard Library for common programming tasks, includes the functions and types described in "cstdio". The functions and types declared in the "cstdio" header are compatible with those in the "stdio.h" header since it is derived from the "stdio.h" header used by the C++ programming language.

The "cstdio" library in C++ includes the following frequently used types and functions:

1.Functions for input and output:

There are several functions for input and output in C++. Some functions are as follows:

a) printf():

Data is formatted and printed using the printf() function to the console or standard output stream.

Syntax:

It has the following syntax:

printf("format_string", arg1, arg2, ...);

Example:

Let's take an example of printing an integer and a floating-point number using the printf() function in C++.

#include <cstdio>

int main()

{

    int n = 75;

    float pi = 3.14159;

printf("The value of number is %d and the value of pi is %.2f\n", n, pi);

    return 0;

}

Output:

The value of the number is 75 and the value of pi is 3.14

Explanation:

In this example, there are two placeholders in the format string: %d for the integer n and %.2f for the floating-point pi. The floating-point number is to be printed with two decimal places, according to the .2 in %.2f specification. The appropriate placeholders will be filled in with the values of n and pi.

b) fscanf():

The fscanf() function is used to read formatted data from a specified input stream, such as a file.

Syntax:

It has the following syntax:

int fscanf(FILE* stream, const char* format, arg1, arg2, ...);

Example:

Let's take an example of reading an integer and a floating-point number from a file with the fscanf() function:

#include <cstdio>

int main()

{

    FILE *file = fopen("input.txt", "r");

// Open the file in read mode

    if (file == nullptr)

    {

printf("Failed to open the file.\n");

        return 1;

    }

    int num;

    float pi;

    // Read an integer and a floating-point number from the file

    int numItemsRead = fscanf(file, "%d %f", &num, &pi);

    if (numItemsRead == 2)

    {

printf("Read data successfully:\n");

printf("Number: %d\n", num);

printf("Pi: %.2f\n", pi);

    }

    else

    {

printf("Failed to read data from the file.\n");

    }

fclose(file);

// Close the file

    return 0;

}

Output:

Failed to open the file.

Explanation:

In this example, we use fopen() to open a file called "input.txt" in read mode. Next, we read two numbers from the file using fscanf: an integer and a floating-point number. After that, we save the values in the variables num and pi, respectively. Similar to printf(), the format string in fscanf() describes how the data in the file is formatted.

c) getchar():

The getchar() function is used to read one character from the standard input.

Syntax:

It has the following syntax:

int getchar();

Example:

Let's take an example to read characters from standard input using the getchar() function until the user pushes the Enter key:

#include <cstdio>

int main()

{

printf("Enter a line of text (press Enter to finish):\n");

    int ch;

    // We use int to handle EOF

    // Read characters until Enter (newline) is pressed

    while ((ch = getchar()) != '\n') {

     // Do something with the character (print it, process it, etc.)

putchar(ch);

    }

    return 0;

}

Output:

Enter a line of text (press Enter to finish):

ram

ram

Explanation:

In this example, the program asks the user to submit a line of text. The while loop repeatedly invokes the getchar() function to read characters from the standard input. In this case, the loop only prints the character using putchar as long as it is not the newline character ('n'). Upon pressing Enter, the loop will come to an end.

d) putchar():

A single character is produced using the putchar() function.

Syntax:

It has the following syntax:

int putchar(int character);

Example:

Let's take an example of outputting characters to the console using the putchar() function:

#include <cstdio>

int main()

{

printf("Outputting characters using putchar:\n");

    // Output some characters using putchar

putchar('H');

putchar('i');

putchar('\n');

// Output a newline character

    return 0;

}

Output:

Outputting characters using putchar:

Hi

Explanation:

In this example, the program utilizes the putchar() function to output the letters 'H', and 'i' one at a time. After that, it prints the newline character "n", which starts the next line's output cursor.

e) scanf():

The scanf() function is used to read formatted data from the standard input stream (often the keyboard).

Syntax:

It has the following syntax:

int scanf(const char *format, arg1, arg2, ...);

Example:

Let's take an example to read an integer and a floating-point number from standard input using the scanf() function:

#include <cstdio>

int main()

{

    int num;

    float pi;

printf("Enter an integer and a floating-point number: ");

scanf("%d %f", &num, &pi);

printf("You entered: %d and %.2f\n", num, pi);

    return 0;

}

OUTPUT:

Enter an integer and a floating-point number: 3

3.5

You entered: 3 and 3.50

Explanation:

In this example, the user must enter an integer and a floating-point number. The scanf() function reads these numbers from the standard input based on the "%d%f" format string. When reading an integer, the format specifier %d is used, and when reading a floating-point value, the format specifier %f is used. The memory addresses for those variables must first be obtained using the & operator for scanf to store the input values into the variables num and pi.

f) fprintf():

Data is formatted and printed using the fprintf() function to a given output stream, such as a file.

Syntax:

It has the following syntax:

int fprintf(FILE* stream, const char* format, ...);

Example:

Let's take an example to write data to a file using the fprintf() function:

#include <stdio.h>

int main()

{

    // Open the file in write mode

    FILE* file = fopen("example.txt", "w");

    if (file != nullptr) {

const char* name = "John";

        int age = 30;

        double salary = 50000.50;

        // Write data to the file using fprintf

fprintf(file, "Name: %s\n", name);

fprintf(file, "Age: %d\n", age);

fprintf(file, "Salary: %.2f\n", salary);

        // Close the file

fclose(file);

printf("Data was written to the file successfully.\n");

    }

    else

    {

printf("Failed to open the file.\n");

    }

    return 0;

}

Output:

Data was written to the file successfully.

Explanation:

In this example, write mode ("w") is selected when a file called "example.txt" is opened. After that, using the fprintf() function, we add a person's name, age, and salary to the file. The associated variables (name, age, and salary) are designated by the format specifiers %s, %d, and %.2f.

2.Functions that handle files:

There are various functions that handle files. Some functions are as follows:

a) fopen():

It allows access to a file for input/output.

Syntax:

It has the following syntax:

FILE* fopen(const char* filename, const char* mode);

Example:

Let's take an example to demonstrate how the access the files for input/output using the fopen() function:

#include <stdio.h>

int main()

{

    // Open a file in write mode

    FILE* file = fopen("example.txt", "w");

    if (file != nullptr)

    {

        // Write some data to the file

const char* message = "Hello, World!";

fputs(message, file);

        // Close the file

fclose(file);

printf("Data was written to the file successfully.\n");

    }

    else

    {

printf("Failed to open the file.\n");

    }

    return 0;

}

Output:

Data was written to the file successfully.

Explanation:

In this example, write mode ("w") is selected when a file called "example.txt" is opened. After that, using the fputs() function, we write the string "Hello, World!" to the file. Next, we use the fclose() function to close the file after writing the data.

b) fclose():

The fclose() function is used to close an open file.

Syntax:

It has the following syntax:

int fclose(FILE* stream);

Example:

Let's take an example to demonstrate how to close a file using the fclose() function:

#include <stdio.h>

int main()

{

    // Open the file in write mode

    FILE* file = fopen("example.txt", "w");

    if (file != nullptr) {

        // Write some data to the file

const char* message = "Hello, World!";

fputs(message, file);

        // Close the file

        int result = fclose(file);

        if (result == 0) {

printf("File closed successfully.\n");

        }

        else

        {

printf("Failed to close the file.\n");

        }

    }

    else

    {

printf("Failed to open the file.\n");

    }

    return 0;

}

Output:

The file closed successfully.

Explanation:

In this example, write mode ("w") is selected when a file called "example.txt" is opened. Use the fputs() function to write some data to the file. After that, we use the fclose() function to close the file. The return result of the fclose() function is examined to determine if the file was successfully closed or not.

c) fread():

The function fread() reads a block of data from a file.

Syntax:

It has the following syntax:

size_tfread(void* ptr, size_t size, size_t count, FILE* stream);

Example:

#include <stdio.h>

struct Employee {

    char name[50];

    int age;

    double salary;

};

int main()

{

    // Open the file in binary read mode

    FILE* file = fopen("employees.dat", "rb");

    if (file != nullptr)

    {

        // Read an array of Employee structures from the file

        Employee employees[3];

size_telements_read = fread(employees, sizeof(Employee), 3, file);

        // Close the file

fclose(file);

        if (elements_read == 3)

        {

            // Print the data of the first employee

printf("Name: %s\n", employees[0].name);

printf("Age: %d\n", employees[0].age);

printf("Salary: %.2f\n", employees[0].salary);

        }

        else

        {

printf("Failed to read data from the file.\n");

        }

    }

    else

    {

printf("Failed to open the file.\n");

    }

    return 0;

}

Output:

Failed to open the file.

Explanation:

In this example, the name, age, and salary of an employee are defined along with a basic Employee structure. Next, we open "employees.dat" in binary read mode ("rb"). From the file, we used the fread() function to read an array of three Employee structures. The elements_read variable holds the number of items that were successfully read.

d) fwrite():

The fwrite() function is used to write a block of data to a file.

Syntax:

It has the following syntax:

size_tfwrite(const void* ptr, size_t size, size_t count, FILE* stream);

Example:

#include <stdio.h>

struct Employee {

    char name[50];

    int age;

    double salary;

};

int main()

{

    // Create an array of Employee structures

    Employee employees[3] = {

        {"John", 30, 50000.50},

        {"Jane", 28, 45000.75},

        {"Mike", 35, 60000.25}

    };

    // Open the file in binary write mode

    FILE* file = fopen("employees.dat", "wb");

    if (file != nullptr)

    {

        // Write the array of Employee structures to the file

size_telements_written = fwrite(employees, sizeof(Employee), 3, file);

        // Close the file

fclose(file);

        if (elements_written == 3)

        {

printf("Data was written to the file successfully.\n");

        }

        else

        {

printf("Failed to write data to the file.\n");

        }

    }

    else

    {

printf("Failed to open the file.\n");

    }

    return 0;

}

Output:

Data was written to the file successfully.

Explanation:

In this example, the name, age, and salary of an employee are defined along with a basic Employee structure. After creating an array of Employee structures, we add some information to it. After that, we use the fopen() function to open a file called "employees.dat" in binary write mode ("wb"). The Employee structures are written to the file in their entirety using the fwrite() function. The fwrite() function return value is examined to test whether the data was successfully written.

e) fseek():

The file position indicator within a file is set by the fseek() function.

Syntax:

It has the following syntax:

int fseek(FILE *stream, long int offset, int origin);

Example:

#include <cstdio>

#include <cstdlib>

int main()

{

    FILE* file = fopen("example.txt", "r");

    if (file == nullptr)

    {

perror("Error opening the file");

        return EXIT_FAILURE;

    }

    // Move the file position indicator to the 10th byte from the beginning of the file

    if (fseek(file, 10, SEEK_SET) != 0)

    {

perror("Error using fseek");

        return EXIT_FAILURE;

    }

    // Now read and print the rest of the file from the new position

    char buffer[100];

    while (fgets(buffer, sizeof(buffer), file) != nullptr)

    {

printf("%s", buffer);

    }

fclose(file);

    return EXIT_SUCCESS;

}

Output:

Error opening the file: No such file or directory

Explanation:

In this example, the program opens the file "example.txt", and uses the fseek() function to relocate the file position indication to the first 10 bytes of the file, then reads and outputs the entire file's contents from that point onward.

f) ftell():

The ftell() function returns the file position indicator's current location.

Syntax:

It has the following syntax:

long int ftell(FILE *stream);

Example:

#include <cstdio>

#include <cstdlib>

int main()

{

    FILE* file = fopen("example.txt", "r");

    if (file == nullptr)

    {

perror("Error opening the file");

        return EXIT_FAILURE;

    }

    // Move the file position indicator to the 10th byte from the beginning of the file

    if (fseek(file, 10, SEEK_SET) != 0)

    {

perror("Error using fseek");

        return EXIT_FAILURE;

    }

    // Get the current file position indicator's offset

    long int position = ftell(file);

    if (position != -1)

    {

printf("Current file position: %ld bytes\n", position);

    }

    else

    {

perror("Error using ftell");

        return EXIT_FAILURE;

    }

fclose(file);

    return EXIT_SUCCESS;

}

Output:

Error opening the file: No such file or directory

Explanation:

In this example, the program opens a file called "example.txt", and uses the fseek() function to shift the file position indication to the 10th byte from the beginning of the file, and then uses the ftell() function to get the position. On the console, the current offset is printed.

3. I/O Character:

There are various I/O characters. Some characters are as follows:

a) fgetc():

A single character can be read from a file using the fgetc() function.

Syntax:

It has the following syntax:

int fgetc(FILE *stream);

Example:

#include <cstdio>

int main()

{

    FILE *file = fopen("example.txt", "r");

    if (file == nullptr)

    {

perror("Error opening the file");

        return 1;

    }

    int ch;

    // Read characters until the end of the file is reached

    while ((ch = fgetc(file)) != EOF)

    {

        // Do something with the character (e.g., process, print, etc.)

putchar(ch);

    }

fclose(file);

    return 0;

}

Output:

Error opening the file: No such file or directory

Explanation:

This example reads text from the file "example.txt" in a loop using the fgetc() function until the file's end (represented by the EOF constant) is reached. After that, the putchar() function is used to print the characters to the console.

b) fputc():

One character can be written to a file using the fputc() function.

Syntax:

It has the following syntax:

int fputc(int character, FILE* stream);

Example:

#include <cstdio>

int main()

{

    FILE* file = fopen("example.txt", "w");

// Open the file in write mode "w"

    if (file == nullptr)

    {

printf("Failed to open the file.\n");

        return 1;

    }

    char ch = 'A';

    // Write 'A' to the file using fputc

    if (fputc(ch, file) == EOF)

    {

printf("Error writing to the file.\n");

        return 1;

    }

    // Close the file

fclose(file);

printf("A character is written to the file successfully.\n");

    return 0;

}

Output:

A character is written to the file successfully.

Explanation:

In this example, the file "example.txt" is opened in write mode using the fopen() function. After that, the file is closed using the fclose() function after we use the fputc() function to add the character "A" to it.

4. File placement:

There are various file placement functions in C++. Some functions are as follows:

a.fseek():

The file position indicator can be set to a specified location within a file using the fseek() function.

Syntax:

It has the following syntax:

int fseek(FILE* stream, long int offset, int origin);

Example:

#include <cstdio>

int main()

{

    FILE* file = fopen("example.txt", "r"); // Open the file in read mode ("r")

    if (file == nullptr)

    {

printf("Failed to open the file.\n");

        return 1;

    }

    // Move the file position indicator to the 5th byte from the beginning of the file

    if (fseek(file, 4, SEEK_SET) != 0)

    {

printf("Error while seeking the file position.\n");

        return 1;

    }

    // Read a character from the new position

    int ch = fgetc(file);

    if (ch != EOF)

    {

printf("Character at the new position: %c\n", static_cast<char>(ch));

    }

    else

    {

printf("Error reading character from the file.\n");

    }

    // Close the file

fclose(file);

    return 0;

}

Output:

Error reading character from the file.

Explanation:

Here, we use the fopen() function to open the file "example.txt" in read-only mode. After that, the file position indication is moved to the 5th byte from the file's start using fseek (SEEK_SET). After that, we use the fgetc() function to read a character from the new place and print it to the console.

b. rewind():

This function returns the file position indication to its initial location.

Syntax:

It has the following syntax:

void rewind(FILE *stream);

Example:

#include <cstdio>

int main()

{

    FILE *file = fopen("example.txt", "r");

    if (file == nullptr)

    {

perror("Error opening the file");

        return 1;

    }

    // Move the file pointer to a specific position (e.g., offset of 5)

fseek(file, 5, SEEK_SET);

    // Get the current file position

    long int position = ftell(file);

    if (position != -1L)

    {

printf("Current position in the file: %ld\n", position);

    }

    else

    {

perror("Error getting the position");

fclose(file);

        return 1;

    }

    // Reset the file position back to the beginning of the file

    rewind(file);

    // Get the new current file position (should be 0)

    position = ftell(file);

    if (position != -1L)

    {

printf("New position in the file after rewind: %ld\n", position);

    }

    else

    {

perror("Error getting the position after rewind");

    }

fclose(file);

    return 0;

}

Output:

Error opening the file: No such file or directory

Explanation:

In this example, we open a file called "example.txt" in read mode (abbreviated "r"). After that, the file pointer is moved to position 5 relative to the file's start using the fseek() function. Before executing the rewind command, we first call the ftell() function to determine the file pointer's current position. The file position is returned to its initial location after using the rewind() function. The new current position should be 0 (the beginning of the file), which we can obtain by using the ftell() function once more.

5.More utility types and functions:

There are various utility types and functions in C++. Some functions are as follows:

a.remove():

A file can be removed from the file system using the remove() function.

Syntax:

It has the following syntax:

int remove(const char *filename);

Example:

#include <cstdio>

#include <iostream>

int main()

{

const char* filename = "example.txt";

    // Check if the file exists before attempting to delete it

    if (std::FILE* file = std::fopen(filename, "r"))

    {

std::fclose(file);

        // Attempt to delete the file

        if (std::remove(filename) == 0)

        {

std::cout<< "File deleted successfully.\n";

        }

        else

        {

std::perror("Error deleting the file");

        }

    }

    else

    {

std::perror("Error opening the file");

    }

Output:

Error opening the file: No such file or directory

Explanation:

In this example, we name the file we want to remove as "example.txt". We try to open the file in read mode ("r") to see if it already exists before attempting to delete it. If the file is already there, we immediately shut it before deleting it with the remove() function.

The function returns 0, and a success message is printed if the file deletion is successful. When a deletion error occurs, the function returns a non-zero value, and we use perror to print an error message.

Use of the remove function must be done with caution because there is no built-in means to undo the permanent deletion of the file from the file system. Always exercise caution when deleting files, and make sure you are deleting the right file.

b.rename():

This function is used to change a file's name.

Syntax:

It has the following syntax:

int rename(const char *old_filename, const char *new_filename);

Example:

#include <cstdio>

#include <iostream>

int main()

{

const char* old_filename = "old_file.txt";

const char* new_filename = "new_file.txt";

    // Check if the old file exists before renaming it

    if (std::FILE* file = std::fopen(old_filename, "r"))

    {

std::fclose(file);

        // Attempt to rename the file

        if (std::rename(old_filename, new_filename) == 0)

        {

std::cout<< "File renamed successfully.\n";

        }

        else

        {

std::perror("Error renaming the file");

        }

    }

    else

    {

std::perror("Error opening the old file");

    }

    return 0;

}

Output:

Error opening the old file: No such file or directory

Explanation:

In this example, we'll rename a file called "old_file.txt" to "new_file.txt" that already exists. We attempt to open the old file in read mode ("r") before renaming it to see if it still exists. If the file already exists, we immediately shut it before renaming it with the rename() function.

The function returns 0, and we print a success message if the renaming procedure is successful. The method returns a non-zero number if there is a problem renaming the file, and we use the perror() function to output an error message.

c. feof():

With the feof() function, you may determine whether a file has reached the end of its storage space.

Syntax:

It has the following syntax:

int feof(FILE *stream);

Example:

#include <stdio.h>

int main()

{

    FILE *file = fopen("example.txt", "r"); // Opening a file in read mode

    if (file == NULL)

    {

perror("Error opening the file");

        return 1;

    }

    int character;

    while ((character = fgetc(file)) != EOF)

    {

        // Process the character read from the file

putchar(character);

    }

    if (feof(file))

    {

printf("\nEnd of file reached.\n");

    }

    else

    {

printf("\nError while reading the file.\n");

    }

fclose(file);

    return 0;

}

Output:

Error opening the file: No such file or directory

Explanation:

In this example, the "example.txt" file is opened in read mode using the fopen() function and the characters are read from the file using a while loop and fgetc until an EOF is reached. We use the feof() function to determine if the file's end has been reached after reading it. If it is accurate, we print "End of file reached", and in the absence of which, we print "Error while reading the file".

d. perror():

This function is used to display a detailed error message to the standard error.

Syntax:

It has the following syntax:

void perror(const char *str);

Example:

#include <stdio.h>

#include <errno.h>

#include <string.h>

int main()

{

    FILE *file = fopen("nonexistent.txt", "r");

    if (file == NULL)

    {

        // Print error message with the description

perror("Error");

        // Print the specific error description

fprintf(stderr, "Error opening the file: %s\n", strerror(errno));

        return 1;

    }

    // File processing code goes here...

fclose(file);

    return 0;

}

Output:

ERROR!

Error: No such file or directory

Error opening the file: No such file or directory

Explanation:

In this example, we use the fopen() function to try and open a file called "nonexistent.txt" in read mode. The fopen() function will return a NULL pointer, which denotes an error because the file does not exist. After that, we print the error description and the error message "Error" to the standard error stream (stderr) using the perror() function. Additionally, we utilize the strerror function to obtain a more detailed error report based on the value of the global variable errno, which we print using fprintf() to stderr.

e. sprintf():

It is used to format data and saves it as a string rather than printing it to the standard output.

Syntax:

It has the following syntax:

int sprintf(char *buffer, const char *format, ...);

Example:

#include <cstdio>

int main()

{

    char buffer[100]; // Buffer to store the formatted string

    int number = 42;

    float value = 3.14;

    // Format the output and store it in the buffer

    int chars_written = sprintf(buffer, "The number is %d and the value is %.2f", number, value);

    if (chars_written>= 0)

    {

printf("Formatted string: %s\n", buffer);

printf("Number of characters written: %d\n", chars_written);

    }

    else

    {

printf("Error occurred while formatting.\n");

    }

    return 0;

}

Output:

Formatted string: The number is 42, and the value is 3.14

Number of characters written: 38

Explanation:

In this example, a string having an integer (number) and a floating-point value (value) with two decimal places is formatted using the sprint() function. After formatting, the output is saved in the buffer. We print the formatted string and the total number of characters written using the printf function after the sprintf function returns the number of characters written to the buffer.

Remember that the sprint() function doesn't conduct any bounds checking, so make sure the destination buffer is big enough to store the formatted string with the null terminator in it. The sprint() function can be dangerous since it may result in buffer overflows if the format string is generated dynamically or from an unreliable source. It is advised to utilize safer alternatives like snprintf, which enables the specification of the buffer size to prevent buffer overflows, to avoid similar problems.

f) sscanf():

With the sscanf() function, formatted data is read from a string as opposed to the standard input.

Syntax:

It has the following syntax:

int sscanf(const char *str, const char *format, ...);

Example:

#include <cstdio>

int main()

{

const char input[] = "John 25 75.50";

    char name[50];

    int age;

    float height;

    // Read data from the input string and store it in variables

    int items_read = sscanf(input, "%s %d %f", name, &age, &height);

    if (items_read == 3)

    {

printf("Name: %s\n", name);

printf("Age: %d\n", age);

printf("Height: %.2f\n", height);

    }

    else

    {

printf("Error occurred while reading.\n");

    }

    return 0;

}

Output:

Name: John

Age: 25

Height: 75.50

Explanation:

In this example, the data input is a C-string with the following formatting: ("Name Age Height"). The format string "%s%d%f" is used to guide the use of sscanf to read the data from the input string and store it in the variable's name, age, and height. The number of objects properly read and assigned is returned by the sscanf function, and in this case, it should be 3. After that, the values kept in the variables are printed.

Similar to scanf, employing sscanf can be dangerous if the input string is malformed or originates from an unreliable source because it could result in undefinable behavior. The input string must adhere to the format requirements, and any potential problems must be handled correctly.

Conclusion:

In this article, we discussed the cstdio header file in C++. The "cstdio" offers constants like BUFSIZ (buffer size) and NULL (null pointer) and macros like EOF (indicating the end-of-file value).

It should be noted that the C++ Standard Library advises using the similar header <cstdio> instead (without the ".h" extension). The same functionality is offered by both "cstdio" and "stdio.h", but using "cstdio" follows C++ name rules.

The "cstdio" additionally includes many utility functions and types for managing file input/output and data formatting in addition to these features.

It's important to remember that in contemporary C++, the cstdio header is a component of the C Standard Library, and C++ offers its substitute header named iostream. A more contemporary and C++-specific method of performing input and output operations utilizing streams (such as std::cout and std::cin) is provided by the iostream header. When building new C++ code, streams are typically preferred over the functions offered by "cstdio". Nevertheless, many people still utilize the "cstdio" routines, especially when interacting with C libraries or working with ancient code.