Через пошаговую отладку видно, что замена происходит, но на экран выводится только точка. Надо 'a' заменить на 'b' и 'b' на 'a'.
#include<iostream>
#include <cstring>
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<conio.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
char bukva;
bool proverka = false;
int i = 98,x=97;
cout << "Введите текст = " << endl;
do {
cin >> bukva;
if (bukva == 'a')
{
proverka = true;
}
if (proverka)
{
char bukva = i;
proverka = false;
}
if (bukva == 'b')
{
proverka = true;
}
if (proverka)
{
char bukva = x;
proverka = false;
}
} while (bukva != '.');
cout << "Текст после изменений = " << bukva << endl;
system("PAUSE");
}