#include <iostream>
#include <fstream>
using namespace std;
// Function to sort an array of integers using Selection Sort
void sortData(int arr[], int size) {
for (int i = 0; i < size - 1; ++i) {
for (int j = i+1; j < size; ++j) {
if (arr[i] > arr[j]) {
// Swap the elements
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
ifstream inputFile("input.txt");
ofstream outputFile("output.txt");
if (!inputFile) {
cerr << "Error opening input file!" << endl;
return 1;
}
if (!outputFile) {
cerr << "Error opening output file!" << endl;
return 1;
}
const int MAX_SIZE = 1000; // Maximum number of integers to handle
int numbers[MAX_SIZE];
int count = 0;
// Read numbers from the input file
while (inputFile >> numbers[count]) {
count++;
if (count >= MAX_SIZE) {
cerr << "Too many numbers in input file. Max allowed is " << MAX_SIZE << endl;
return 1;
}
}
// Sort the data
sortData(numbers, count);
// Write the sorted numbers to the output file
for (int i = 0; i < count; ++i) {
outputFile << numbers[i] << endl;
}
// Close the files
inputFile.close();
outputFile.close();
cout << "Data sorted and written to output.txt" << endl;
return 0;
}
____________________
This C++ program reads a list of integers from a file named input.txt, sorts the numbers using the Selection Sort algorithm, and then writes the sorted numbers to a file named output.txt. Here's a breakdown of what the program does:
Include Libraries:
The program includes <iostream> for input/output operations and <fstream> for file handling.
Function to Sort Data (Selection Sort):
sortData(int arr[], int size) is a function that performs Selection Sort on the input array arr[] of size size. It repeatedly finds the smallest element in the unsorted part of the array and swaps it with the element at the beginning of the unsorted part.
Main Function:
File Handling:
ifstream inputFile("input.txt"); opens the input file for reading.
ofstream outputFile("output.txt"); opens the output file for writing.
It checks whether the files are opened successfully. If not, it prints an error message and terminates.
Reading Data from File:
The program defines a constant MAX_SIZE of 1000 to limit the number of integers it can handle. It reads the integers from input.txt into the array numbers[] until either the file ends or it reaches the limit of MAX_SIZE.
If more than 1000 numbers are present in the input file, an error message is printed, and the program exits.
Sorting the Data:
Once the integers are loaded into the array, the sortData() function is called to sort them using the Selection Sort algorithm.
Writing Data to Output File:
After sorting, the program writes the sorted integers to the output file output.txt.
Closing Files:
The input and output files are properly closed at the end.
Program Completion:
A success message Data sorted and written to output.txt is displayed on the console, indicating that the task was completed.
Key Components:
Input/Output: Reading from input.txt, writing to output.txt.
Selection Sort: Sorting algorithm to arrange the numbers in ascending order.
Error Handling: Checks if files are opened correctly and handles excessive input.
This program efficiently handles sorting and file I/O with simple error handling and basic sorting logic.