Нужно добавить в программу файловый ввод-вывод

Есть консольное приложение, в которое с клавиатуры вводится строка, она обрабатывается и выводится. Нужно заменить в нем ввод с клавиатуры на чтение исходной строки из файла и запись полученной строки в другой файл.

#include <iostream>
#include <ctime>
#include <string.h>
using namespace std;

bool razdelitel(char* S, size_t i)
{
    if ((S[i] != ' ') && (S[i] != ',') && (S[i] != '.') && (S[i] != ';') && (S[i] != '\n') && (S[i] != '\t'))
    return 1;
    else return 0;
}

int main()
{
    const int SIZE = 100;
    char dig[SIZE]=" ";
    char prom[SIZE]=" ";
    char pod[SIZE]=" ";
    size_t ks(0);
    size_t j=0;
    cout << "Введите число: ";
    cin.getline(dig,SIZE);
    if(razdelitel(dig,strlen(dig))==0)strcat_s(dig, SIZE ," ");
    for (size_t i = 0; i < strlen(dig); i++)
    {
          if (razdelitel(dig, i) )
          {
              prom[ks]=dig[i];
              ks++;
          }
              else
          {
              switch (strlen(prom))
                 {
                  case 9: for(size_t i=0; i<3; i++) {pod[j] = prom[i]; j++;} strcat_s(pod, SIZE ," млн. "); j=j+6; for (size_t i=3; i<6; i++) {pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," тыс. "); j=j+6; for (size_t i=6; i<9; i++){pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," руб. "); break;
                  case 8: for(size_t i=0; i<2; i++) {pod[j] = prom[i]; j++;} strcat_s(pod, SIZE ," млн. "); j=j+6; for (size_t i=2; i<5; i++) {pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," тыс. "); j=j+6; for (size_t i=5; i<8; i++){pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," руб. "); break;
                  case 7: for(size_t i=0; i<1; i++) {pod[j] = prom[i]; j++;} strcat_s(pod, SIZE ," млн. "); j=j+6; for (size_t i=1; i<4; i++) {pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," тыс. "); j=j+6; for (size_t i=4; i<7; i++){pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," руб. "); break;
                  case 6: for(size_t i=0; i<3; i++) {pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," тыс. "); j=j+6; for (size_t i=3; i<6; i++){pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," руб. "); break;
                  case 5: for(size_t i=0; i<2; i++) {pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," тыс. "); j=j+6; for (size_t i=2; i<4; i++){pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," руб. "); break;
                  case 4: for(size_t i=0; i<1; i++) {pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," тыс. "); j=j+6; for (size_t i=1; i<5; i++){pod[j] = prom[i]; j++;} strcat_s(pod,SIZE," руб. "); break;
                  case 3: for(size_t i=0; i<3; i++) {pod[j] = prom[i]; j++;} strcat_s(pod,SIZE, " руб. "); break;
                  case 2: for(size_t i=0; i<2; i++) {pod[j] = prom[i]; j++;} strcat_s(pod,SIZE, " руб. "); break;
                  case 1: for(size_t i=0; i<1; i++) {pod[j] = prom[i]; j++;} strcat_s(pod,SIZE, " руб. "); break;
                 }
              memset(prom, 0, strlen(prom));
              ks=0;
              j = 0;
          }
    }
     cout << "\n" << "Измененная строка: " << pod << endl;
     system ("Pause");
    return 0;
}

Не знаете как читать и писать данные в файлах?
Файловые потоки. Открытие и закрытие
Чтение и запись текстовых файлов

Нет. Если в строках я ещё хоть что-то понимаю, то в файлах я полный ноль, потому и прошу помощи.

Ну так изучайте, пробуйте, задавайте вопросы.