Транслитерацию на дом. компьютере реализовал. Из файла читает русские символы, потом в другой записывает уже на транслите. Но когда программу открываю на другом компьютере все русские символы заменяются на какие-то краказябры, а исправить не получается, так как если пишу скажем "cout << (а == б);" выводит "1", то есть они равны.
В чем проблема не понимаю. (и на дом., и на других компьютерах Visual studio 2013)
Под спойлером полный код программы:
spoiler//////////////////////////////////////////////////////
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
string transliteration(string, int);
int main()
{
ifstream file("file.txt");
ofstream file2("file2.txt");
string str;
string result;
while (file >> str)
{
result += (transliteration(str, str.size()) + " ");
}
file2 << result;
file.close();
file2.close();
system("pause");
return 0;
}
string transliteration(string str, int strSize)
{
string sumStr = "";
for (int i = 0; i < strSize; i++)
{
switch (str[i])
{
case 'а':
sumStr += 'а';
break;
case 'А':
sumStr += 'A';
break;
case 'б':
sumStr += 'b';
break;
case 'Б':
sumStr += 'B';
break;
case 'в':
sumStr += 'v';
break;
case 'В':
sumStr += 'V';
break;
case 'г':
sumStr += 'g';
break;
case 'Г':
sumStr += 'G';
break;
case 'д':
sumStr += 'd';
break;
case 'Д':
sumStr += 'D';
break;
case 'е':
sumStr += 'e';
break;
case 'Е':
sumStr += 'E';
break;
case 'ё':
sumStr += "yo";
break;
case 'Ё':
sumStr += "Yo";
break;
case 'ж':
sumStr += "zh";
break;
case 'Ж':
sumStr += "Zh";
break;
case 'з':
sumStr += 'z';
break;
case 'З':
sumStr += 'Z';
break;
case 'и':
sumStr += 'i';
break;
case 'И':
sumStr += 'I';
break;
case 'й':
sumStr += 'y';
break;
case 'Й':
sumStr += 'Y';
break;
case 'к':
sumStr += 'k';
break;
case 'К':
sumStr += 'K';
break;
case 'л':
sumStr += 'l';
break;
case 'Л':
sumStr += 'L';
break;
case 'м':
sumStr += 'm';
break;
case 'М':
sumStr += 'M';
break;
case 'н':
sumStr += 'n';
break;
case 'Н':
sumStr += 'N';
break;
case 'о':
sumStr += 'o';
break;
case 'О':
sumStr += 'O';
break;
case 'п':
sumStr += 'p';
break;
case 'П':
sumStr += 'P';
break;
case 'р':
sumStr += 'r';
break;
case 'Р':
sumStr += 'R';
break;
case 'с':
sumStr += 's';
break;
case 'С':
sumStr += 'S';
break;
case 'т':
sumStr += 't';
break;
case 'Т':
sumStr += 't';
break;
case 'у':
sumStr += 'u';
break;
case 'У':
sumStr += 'U';
break;
case 'ф':
sumStr += 'f';
break;
case 'Ф':
sumStr += 'F';
break;
case 'х':
sumStr += 'x';
break;
case 'Х':
sumStr += 'X';
break;
case 'ц':
sumStr += 'c';
break;
case 'Ц':
sumStr += 'C';
break;
case 'ч':
sumStr += "ch";
break;
case 'Ч':
sumStr += "Ch";
break;
case 'ш':
sumStr += "sh";
break;
case 'Ш':
sumStr += "Sh";
break;
case 'щ':
sumStr += "shh";
break;
case 'Щ':
sumStr += "Shh";
break;
case 'ъ':
sumStr += '"';
break;
case 'ы':
sumStr += 'y';
break;
case 'ь':
sumStr += '\'';
break;
case 'э':
sumStr += 'e';
break;
case 'Э':
sumStr += 'E';
break;
case 'ю':
sumStr += "yu";
break;
case 'Ю':
sumStr += "Yu";
break;
case 'я':
sumStr += "ya";
break;
case 'Я':
sumStr += "Ya";
break;
default:
sumStr += str[i];
break;
}
}
return sumStr;
}