Прочитать кириллицу из файла
Не могу понять, почему не читает русские символы. Суть задания: извлечь из текстового файла, например data.txt, с русским текстом все гласные, а затем их вывести на экран. С латинскими нормально работает, а русские никак.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
int main (void) {int i = 0, num; FILE *fp; char c, *filename, buffer[512]; printf("Vvedite imia fajla\n\n "); filename = GetString(); fp = fopen(filename, "r"); if (!fp) {puts("\nFajl ne najden"); getch(); exit(1); } while ((c = fgetc(fp)) != EOF) c == 251 } num = i; printf("\nV fajle najdeny sledujuschie glasnye:\n"); for (i=0; i num; i++) printf ("%c", buffer[i]); fclose(fp); free(filename); getch(); return 0; }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Прочитать числа из файла и записать их в два других файла по условию
Нужно написать простенькую программу которая берет из текстового файла числа и создает два других.
Из файла F1 прочитать матрицу A (10,20)
Из файла F1 прочитать матрицу A (10,20). Вычислить сумму элементов каждой строки, записать в.
Прочитать матрицу из файла
Нужно написать функцию, считывающую из текстового файла матрицу 5×5 для продолжения работы уже с.
Прочитать матрицу из файла
Только начал изучение языка, понимаю, что прога простая, но прошу помочь: Нужно написать программу.
C++ Для начинающих вывести текст из файла на экран
Где-то должно быть описано уже, но искать тяжело. У начинающих может возникнуть вопрос: “Как вывести текст файла на экран”. Дело не хитрое, но если начинающих принудительно заставляют использовать старые версии компиляторов, то тут могут возникнуть проблемы. Думаю эта тема достаточно актуальна.
Чтобы компилятор мог прочитать русский текст, нужно записывать в файл текст таким шрифтом, который компилятор для русского текста использует. Если пытаться прочитать текст, написанный привычными большинству шрифтами, то вместо русских букв можно наблюдать абракадабру. Чтобы этой абракадабры избежать, я создам один файл с двумя функциями. Кому какая функция будет нужна решайте сами. Первая функция вводит информацию в текстовый файл, вторая функция читает информацию из текстового файла. При необходимости ненужную функцию легко убрать.
Код C++ Вывести текст из файла на экран
const N = 256 ; //Константный размер строки
char FName = “C:\MyFile.txt” ; //Путь к файлу
/*Вывод текста из файла на экран*/
void ReadFile ()
cout //Для красоты
char S [ N ]=< “” >; //В S будут считываться строки
ifstream in1 ( FName ); //Открыли файл для чтения
while (! in1 . eof ()) //Будем читать информацию пока не дойдем до конца файла
in1 . getline ( S , N ); //Построчное считывание информации в S
cout //Вывод очередной строки на экран
>
in1 . close (); //Закрыли открытый файл
>
/*Ввод текста в файл*/
void CreateFile ()
cout //Для красоты
char S [ N ]=< “” >; //В S будет считываться строка
int count = 0 ; //Число строк для ввода в файл
cout
cin >> count ; //Определили сколько строк вводить
/*Главная часть функции*/
ofstream out1 ( FName ); //Открыли файл для записи
for (int i = 0 ; i < count + 1 ; i ++) //Цикл по количеству нужных строк
cin . getline ( S , N ); //Запоминаем в S то что ввели с клавиатуры
out1 >> S >> endl ; //Записали S в файл и дописали перенос строки
>
out1 . close ();
>
void main ()
clrscr ();
CreateFile (); //Функция записывает строки в файл
WriteFile (); //Функция читает строки из файла и выводит их на экран
getch ();
>
=========================
По приведенному коду говорить почти нечего. Код говорит сам за себя.
while (! in1 . eof ()) – Читается как: “До тех пока не достигнут конец файла, выполнять…”
Первой была написана функция по вводу текста в файл, а после нее написана функция чтения текста из файла и вывода информации на экра. Так как у меня с русской кодировкой проблем нет, то записывая строки русским шрифтом, текст мне выводился русским.
Примечание:
Для тех кто использует DosBox Borland C++ 3.1, предложенный в этом блоге, скорее всего переход на русские символы правая клавиша ctrl. Если в качестве пути файла указывать “C:\\…” , то файл записывается в папку где установлена DosBox С++. ( У меня C:\BORLAND ).
Как считать русский текст из файла c
Пользователь
Регистрация: 21.10.2012
Сообщений: 65
Считывания русского текста из файла
Здравствуйте. Как из файла(.txt) вывести на консоль русский текст? А то выводятся «иероглифы».
Белик Виталий 🙂
Регистрация: 23.07.2007
Сообщений: 57,792
setlocale(LC_ALL,»Russian») перед выводом писать пробовал?
I’m learning to live.
Пользователь
Регистрация: 21.10.2012
Сообщений: 65
Сообщение от Stilet
setlocale(LC_ALL,»Russian») перед выводом писать пробовал?
Да, конечно.
Белик Виталий 🙂
Регистрация: 23.07.2007
Сообщений: 57,792
В таком случае выясни в какой кодировке у тебя файл. Возможно он в юникоде, или в ANSI.
Пробуй использовать для вывода класс wcout
I’m learning to live.
Пользователь
Регистрация: 21.10.2012
Сообщений: 65
Сообщение от Stilet
В таком случае выясни в какой кодировке у тебя файл. Возможно он в юникоде, или в ANSI.
Как узнать кодировку файла.
Пробуй использовать для вывода класс wcout |
А в чем разница между cout и wcout?
Как считать из txt файла русские буквы?
StreamReader не читает русские буквы из файла .txt
Пишу метод, который читает значения из файла txt по значению. Особо в нете не прошарен, если есть.
StringGrid неправильно отображает русские буквы из текстового файла базы txt
StringGrid неправильно отображает русские буквы из текстового файла базы txt. Программу писал.
Запись команды в txt, не отображаются русские буквы
нужно записать результат ipconfig в файл ipconfig >> "file1.txt" записывается абракадабра.
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
Во-первых кодировка в .txt должна быть ASCII.
Во-вторых лучше поменять кодировку в консоли:
SetConsoleCP(1251); //нужна библиотека Windows.h SetConsoleOutputCP(1251);
3802 / 2354 / 413
Регистрация: 09.09.2017
Сообщений: 10,208
Человеческий способ:
1 2 3 4 5 6 7 8 9
#include #include #include wchar_t str[100]; int main(){ setlocale(LC_ALL, ""); wscanf(L"%S", str); wprintf(L"%S\n", str); }
Ну и прочие функции из wchar.h
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
Для начала нужно решить в какой кодировке у вас содержимое файла (UTF-8 (BOM?), 1251, KOI8-R, . )
Регистрация: 16.12.2016
Сообщений: 716
да все уже считалось само собой ( без локалей и прочей шняги) и русскими буквами тоже, там заплет был в конкретном файле.
таким образом когда пытаюсь прочитать stdafx.h выходят эроглифы— ПОЧЕМУ?
читаю так:
bufPtr = fgets(buf, sizeof(buf), myfile1);
а дальше ТОЧНО ТАК ЖЕ читаю файл с русскими надписями test.h который я сам создал в проекте и написал русскими буквами — все четко!
7595 / 6418 / 2924
Регистрация: 14.04.2014
Сообщений: 27,936
Кодировка разная.
Регистрация: 16.12.2016
Сообщений: 716
спасибо конечно но хотелось бы услышать пути решений
3802 / 2354 / 413
Регистрация: 09.09.2017
Сообщений: 10,208
iconv не спасет?
Регистрация: 16.12.2016
Сообщений: 716
Добавлено через 52 минуты
не могу найти нигде файл cpp у меня отсутствует инклуд такой
3802 / 2354 / 413
Регистрация: 09.09.2017
Сообщений: 10,208
iconv это обычная консольная команда для перекодирования. Например
echo "АБВГXYZ" | iconv -f utf8 -t koi8-r
Может тут чего найдете (это первая ссылка в гугле, сам не проверял).
Регистрация: 16.12.2016
Сообщений: 716
вы думаете это хорошее решение проблемы?
просто если я программой ищу и читаю файлы на комьютере, то уж лучше из программы конвертировть то
7595 / 6418 / 2924
Регистрация: 14.04.2014
Сообщений: 27,936
Задача-то в чём? Может, просто не использовать древние форматы?
3967 / 2877 / 670
Регистрация: 08.06.2007
Сообщений: 9,692
Записей в блоге: 4
Сообщение было отмечено SadiQ228 как решение
Решение
nmcf, задача прочитать что-то там из файла через fopen_s. Это, естественно, невозможно, поскольку эта функция ничего не читает.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как из файла txt считать данные в массив?
Добрый день. С с++ у меня очень плохо, но срочно нужно сделать одну вещь. Есть файл file.txt, в.
Как считать массив структур из файла txt
#include "stdafx.h" #include <fstream> #include <iostream> #include <cstring> using namespace.
Как считать определенную строку из txt файла?
Здравствуйте, у меня есть в папке с программой .txt файл, как мне считать в нем определенную.
Как Считать данные из txt файла с условием?
Добрый день! Помогите разобраться в каком направлении двигаться. Необходимо прочитать и вывести.