FunctionX - Practical Learning Logo

C++ File Processing

This is an example of performing file processing in C++. The following technique can be used to save complete but separate lines of text using the "ws" feature on Microsoft Windows. This (undocumented) feature is built-in in the operating system and works on both Microsoft C++ and Borland C++ compilers. I didn't test this program on Linux (my Linux computer was not available) but it is not likely to work on that operating system because, as stated already, cin >> ws which is used to "freely" eat a keyboard stroke is part of MS Windows.

Microsoft Visual C++ Version

#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main()
{
    char FileName[20];
    char EmployeeName[40], Address[50], City[20], State[32], ZIPCode[10];

    // 1. Uncomment the following section to create a new file
/*
    cout << "Enter the Following pieces of information\n";
    cout << "Empl Name: "; cin >> ws;
    cin.getline(EmployeeName, 40);
    cout << "Address:   "; cin >> ws;
    cin.getline(Address, 50);
    cout << "City:      "; cin >> ws;
    cin.getline(City, 20);
    cout << "State:     "; cin >> ws;
    cin.getline(State, 32);
    cout << "ZIP Code:  "; cin >> ws;
    cin.getline(ZIPCode, 10);

    cout << "\nEnter the name of the file you want to create: ";
    cin >> FileName;
    ofstream EmplRecords(FileName, ios::out);

    EmplRecords << EmployeeName << "\n" << Address << "\n" << City << "\n" << State << "\n" << ZIPCode;

*/
    // 2. Uncomment the following section to open an existing file
/*
    cout << "Enter the name of the file you want to open: ";
    cin >> FileName;

    ifstream EmplRecords(FileName);

    EmplRecords.getline(EmployeeName, 40, '\n');
    EmplRecords.getline(Address, 50);
    EmplRecords.getline(City, 20);
    EmplRecords.getline(State, 32);
    EmplRecords.getline(ZIPCode, 10);

    cout << "\n -=- Employee Information -=-";
    cout << "\nEmpl Name: " << EmployeeName;
    cout << "\nAddress:   " << Address;
    cout << "\nCity:      " << City;
    cout << "\nState:     " << State;
    cout << "\nZIP Code:  " << ZIPCode;
*/

    cout << "\n\n";
    return 0;
}

Borland C++ Builder Version

//---------------------------------------------------------------------------
#include <iostream>
#include <fstream>
#include <conio>
using namespace std;

#pragma hdrstop
//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])
{
    char FileName[20];
    char EmployeeName[40], Address[50], City[20], State[32], ZIPCode[10];

    // 1. Uncomment the following section to create a new file
/*

    cout << "Enter the Following pieces of information\n";
    cout << "Empl Name: "; cin >> ws;
    cin.getline(EmployeeName, 40);
    cout << "Address:   "; cin >> ws;
    cin.getline(Address, 50);
    cout << "City:      "; cin >> ws;
    cin.getline(City, 20);
    cout << "State:     "; cin >> ws;
    cin.getline(State, 32);
    cout << "ZIP Code:  "; cin >> ws;
    cin.getline(ZIPCode, 10);

    cout << "\nEnter the name of the file you want to create: ";
    cin >> FileName;

    ofstream EmplRecords(FileName, ios::out);

    EmplRecords << EmployeeName << "\n"
                << Address << "\n"
                << City << "\n"
                << State << "\n"
                << ZIPCode;

*/
    // 2. Uncomment the following section to open an existing file
/*
    cout << "Enter the name of the file you want to open: ";
    cin >> FileName;

    ifstream EmplRecords(FileName);

    EmplRecords.getline(EmployeeName, 40, '\n');
    EmplRecords.getline(Address, 50);
    EmplRecords.getline(City, 20);
    EmplRecords.getline(State, 32);
    EmplRecords.getline(ZIPCode, 10);

    cout << "\n -=- Employee Information -=-";
    cout << "\nEmpl Name: " << EmployeeName;
    cout << "\nAddress:   " << Address;
    cout << "\nCity:      " << City;
    cout << "\nState:     " << State;
    cout << "\nZIP Code:  " << ZIPCode;
*/

    cout <<"\n\nPress any key to continue...";
    getch();
    return EXIT_SUCCESS;
}
//---------------------------------------------------------------------------

 

Copyright © 2004-2009 FunctionX, Inc.