Си++ Подскажите пожалуйста.
ОС:  Windows
Компилятор: Dev-C++4.9.9.2 
здравствуйте, уважаемые форумчане,
подскажите плиз :
1).Есть файл text.txt
в текстовом файле text.txt :
яблоко
x
груша
y
вишня
z
2). МОЙ КОД вычисляет  х, y ,z (х=234) и прога должна их записать в  в файл rezult.txt (или загнать в буфер) 
3).Затем программа должна из файла rezult.txt (или из буфера) результаты прочитать и в файле text.txt заменить значения (моя программа значения меняет, но вместо строк
 46  char fname[] = "text.txt";
 47
 48  char fstr[] = "x";  
 49 char nstr[] = "234"; //в моей программе "ananas"
как сделать чтобы  брать исходные данные и новые данные  из ФАЙЛА rezult.txt (или из буфера) ?????????????
3).  Должно получиться - файл с новым именем (text2.txt)и:
яблоко
234(вместо x)
груша
123 (вместо y)
вишня
789(вместо z)
 МОЙ КОД:
#include <stdio.h>  
 
#include <stdlib.h>
 
#include <string.h>
 
#include <math.h>
 
#include <conio.h>
 
#include <iostream>
 
#include <fstream>
 
#include <ctype.h>
 
 
 
using namespace std;
 
  
 
void  str_replacew(string& str, const char* sub, const char* snew) {
 
  string::size_type pos = 0;
 
  int id, len = strlen(sub);
 
  while((pos = str.find(sub, pos)) != string::npos) {
 
       id = (pos > 0) ? isalpha(str[pos-1]) : 0;
 
       if(! id && ! isalpha(str[pos + len]) ) 
 
            str.replace(pos, len, snew);
 
       pos++;
 
   }
 
}
 
int main(void)
 
{
 
int a,b,c, x,y,z;                 
 
 
 
cout << "a: ";  
 
cin >> a;
 
 
 
cout << "b: ";
 
cin >> b;
 
 
 
c=a+b;
 
x=c+a;
 
y=c+b;
 
z=a+b+c;
 
 
 
 
 
//cout << " x: " << x << endl; 
 
//cout << " y: " << y << endl;
 
//cout << " z: " << z << endl;
 
 
 
 
 
char fname[] = "text.txt";
 
 
 
  char fstr[] = "x";  
 
  char nstr[] = "ananas";  
 
 
 
  fstream fp(fname, fstream::in);
 
  if(! fp.is_open())
 
       return 1;
 
  string buf, line;
 
 
 
  while(! fp.eof()) {
 
       getline(fp, line, '\n');
 
       str_replacew(line, fstr, nstr);
 
       buf += line + '\n';
 
  }
 
  fp.close();
 
  fp.clear();
 
 
 
  fp.open(fname, fstream::out | fstream::trunc);
 
  fp.write(buf.c_str(), buf.length());
 
  fp.flush();
 
  fp.close();
 
  return 0;
 
 
 
}