Считать текст из файла. Текст на русском языке. Провести замену всех символов текста в английской транслитерации
Реализовал транслитерацию с русского в английский, но хочу сделать так, чтобы программа из файла считывала русские буквы и переводила их в транслит. То есть, при запуске программы просим пользователя ввести путь к файлу (E:\test.txt), он считывается и выводится результат. Так же можно добавить проверку на дурака, что если вводишь неправильный путь, выводило, неправильный путь, введите его правильно.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <windows.h>
#include <locale.h>
#define size 256
int translation(char c)
{
char rus[] = "ёйцукенгшщзхъфывапролджэячсмитьбю.";
char eng[] = "`qwertyuiop[]asdfghjkl;'zxcvbnm,./";
for (int i = 0; rus[i] != '\0'; i++)
{
if (c == rus[i])
return eng[i];
}
return c;
}
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
setlocale(LC_ALL, "RUS");
char str[size];
for (int c = 0; (c = getchar()) != '\n';)
{
putchar(translation(c));
}
printf("\n");
system("pause");
return 0;
}
Ответы (1 шт):
Автор решения: SSA
→ Ссылка
Вот так можно сделать считывание файла и последующая передача полученных данных в уже созданную Вами функцию. О возможности ввода пути файла - попробуйте сами. Также, прокомментировал для малой ясности.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <windows.h>
#include <locale.h>
#include <fstream> // библиотека для работы с файлами
#include <string> // библиотека для работы getline.
#define size 256
int translation(char c)
{
char rus[] = "ёйцукенгшщзхъфывапролджэячсмитьбю.";
char eng[] = "`qwertyuiop[]asdfghjkl;'zxcvbnm,./";
for (int i = 0; rus[i] != '\0'; i++)
{
if (c == rus[i])
return eng[i];
}
return c;
}
void typing() {
char str[size];
for (int c = 0; (c = getchar()) != '\n';)
{
putchar(translation(c));
}
printf("\n");
}
void reading() {
std::ifstream file("test.txt"); // ищем файл с именем по такому-то пути ( в нашем случае это в папке с исполнительным файлом )
std::string s;
if (file)
{
std::getline(file, s); // считываем всё из файла
for (char i : s) {
putchar(translation(i)); // передаём в функцию перевода прочитанный файл
}
}
}
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
setlocale(LC_ALL, "RUS");
reading(); // вызываем функцию чтения из файла
printf("\n");
system("pause");
return 0;
}