Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
2.2 kB
1
Indexable
Never
#include <iostream>
#include <fstream>
#include <string>

struct Student {
    int id;
    std::string name;
};

// Function to write student information to a file
void writeStudentData(const std::string& filename, const Student& student) {
    std::ofstream outFile(filename, std::ios::app); // Open the file in append mode
    if (outFile.is_open()) {
        outFile << student.id << " " << student.name << "\n";
        outFile.close();
        std::cout << "Student information has been written to the file." << std::endl;
    } else {
        std::cerr << "Error: Unable to open the file for writing." << std::endl;
    }
}

// Function to read and display student information from a file
void readStudentData(const std::string& filename) {
    std::ifstream inFile(filename);
    if (inFile.is_open()) {
        Student student;
        while (inFile >> student.id) {
            std::getline(inFile, student.name);
            std::cout << "Student ID: " << student.id << ", Student Name: " << student.name << std::endl;
        }
        inFile.close();
    } else {
        std::cerr << "Error: Unable to open the file for reading." << std::endl;
    }
}

int main() {
    const std::string filename = "student_data.txt";

    while (true) {
        std::cout << "Choose an option:\n";
        std::cout << "1. Add a student\n";
        std::cout << "2. Display all students\n";
        std::cout << "3. Quit\n";
        int choice;
        std::cin >> choice;

        if (choice == 1) {
            Student student;
            std::cout << "Enter student ID: ";
            std::cin >> student.id;
            std::cin.ignore(); // Consume the newline character
            std::cout << "Enter student name: ";
            std::cin.ignore();
            std::getline(std::cin, student.name);

            writeStudentData(filename, student);
        } else if (choice == 2) {
            readStudentData(filename);
        } else if (choice == 3) {
            break;
        } else {
            std::cout << "Invalid choice. Please choose a valid option." << std::endl;
        }
    }

    return 0;
}