for educational purposes, I am writing a small encryption program (not real encryption). I've restructured the program so all my code is in main to simplify things for myself.
My unEncrypted file fails. I don't know why. Here's what I know so far.
- Using Xcode
 - Tested statements by switching the order which the files are opened (and tested) to verify only the unencrypted file failing: it is
 - Gone to Build Phases >> Copy Files >> Add File, adding both files to Absolute Path
 - I've checked the spelling of the files and my code
 - Changed the order again for good measure, still the unencrypted file fails
 - Cleared any flags which may accidentally be there
 - Rewound the read/write positions of the files
 
Here is my code in it's entirety.
//  This program reads the contents of a file, encrypts it, and write the contents into a separate file.
#include <iostream>
#include <fstream>
#include <cctype>
#include <cstring>
#include <cmath>
using namespace std;
// Global Constants
const int POSITIVE_INT_LIMIT = 10;
const int NEGATIVE_INT_LIMIT = -10;
const int SLOPE_NEGATIVE = -1;
const int SLOPE_POSITIVE = 1;
const int STEP = 1;
int main() {
    int amplitude = 0, slope = SLOPE_NEGATIVE; //Set initial amplitude and slope.
    int streamSize = 1;
    char ch, cy;
    char *chPtr = &cy; // Initialize and assign char pointer.
    //open an unencrypted file to read from
    fstream unEncryptedFile;
    unEncryptedFile.open("testA", ios::in | ios::binary);
    //open a file to write encrypted info
    fstream cryptFile;
    cryptFile.open("testB", ios::out | ios::binary);
    //Clear flags previous set, just in case
    unEncryptedFile.clear();
    cryptFile.clear();
    //Rewind the files, just in case
    unEncryptedFile.seekg(0L, ios::beg);
    cryptFile.seekp(0L, ios::beg);
    if (unEncryptedFile.fail()) {
        cout << "Error opening read file." << endl;
        exit(1);
    }
    if (cryptFile.fail()) {
        cout << "Error opening write file." << endl;
        exit(1);
    }
    /*      Encryption pattern inside while-loop.
     limit>     10                             *
                9                             * *
                8                            *   *
                7                           *     *
                6                          *       * 
                5                         *         *
                4                        *           *
                3                       *             *
                2                      *               *
                1                     *                 *
     start>     0*2345678901234567890*2345678901234567890* -- < one hertz (cycle)
               -1 *                 *
               -2  *               *   (Number line: each integer represents a single while-loop cycle.)
               -3   *             *
               -4    *           *
               -5     *         *
               -6      *       *
               -7       *     *
               -8        *   *
               -9         * *
     limit>    -10         *
     */
    /*************************************************************
     The pattern above depictes a single character
     being read, and then the value of amplitude is added to it.
     *************************************************************/
    while (!unEncryptedFile.fail()) {
        ch = unEncryptedFile.get(); // Get the next character in the file.
        cout << ch << endl; // test for proper read
        if (amplitude > NEGATIVE_INT_LIMIT && slope == SLOPE_NEGATIVE) {
            amplitude -= STEP;
            cy = ch + amplitude;
            cryptFile.write(chPtr, streamSize); //Adjusted character value, cy, is written to file.
        } else if (amplitude <= NEGATIVE_INT_LIMIT){
            slope = SLOPE_POSITIVE;
            amplitude = NEGATIVE_INT_LIMIT;
            cy = ch + amplitude;
            cryptFile.write(chPtr, streamSize); //Adjusted character value, cy, is written to file.
        } else if (amplitude < POSITIVE_INT_LIMIT && SLOPE_POSITIVE){
            amplitude += STEP;
            cy = ch + amplitude;
            cryptFile.write(chPtr, streamSize); //Adjusted character value, cy, is written to file.
        } else if (amplitude >= POSITIVE_INT_LIMIT){
            slope = SLOPE_NEGATIVE;
            amplitude = POSITIVE_INT_LIMIT;
            cy = ch + amplitude;
            cryptFile.write(chPtr, streamSize); //Adjusted character value, cy, is written to file.
        }
    }
    //Files are closed.
    unEncryptedFile.close();
    cryptFile.close();
    return 0;
}