Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2018, 20:31   #1
Arthur80321
 
Регистрация: 26.11.2018
Сообщений: 5
Восклицание Смена регистра в файле

Всем привет!
Может кто-нибудь знает:
От чего, при замене в файле строчных русских букв на заглавные программа останавливается с ошибкой?

#include <locale.h> #include <windows.h>.....

setlocale(LC_ALL, "Rus");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

char c;

if ((fp = fopen("G:\\c++\\test.txt", "r")) == NULL) {
printf("Невозможно открыть файл.\n"); exit(1);
}
fpout = fopen("G:\\c++\\test2.txt", "w");

while ((c = fgetc(fp)) != EOF) {

if (islower(c)) {
c = toupper(c);
fputc(c, fpout);
}
else {
(isupper(c)); {
c = toupper(c);
fputc(c, fpout);
}
}
}

Спасибо.
Изображения
Тип файла: png 22.png (24.2 Кб, 73 просмотров)
Arthur80321 вне форума Ответить с цитированием
Старый 26.11.2018, 21:01   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Вам же написали почему. В файле не однобайтовая кодировка. Используйте юникод-версии файлов.
p51x вне форума Ответить с цитированием
Старый 26.11.2018, 21:19   #3
Arthur80321
 
Регистрация: 26.11.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Вам же написали почему. В файле не однобайтовая кодировка. Используйте юникод-версии файлов.
Простите ! =))) Но как это сделать ?))) Иначе, буду блуждать долго-долго еще... в этом слабо разибираюсь...
Как их использовать. Русский не читало в файлах поставил "SetConsoleCP(1251);
SetConsoleOutputCP(1251);" и что теперь нужно ? для windows, может вы знаете ?

Последний раз редактировалось Arthur80321; 26.11.2018 в 21:23.
Arthur80321 вне форума Ответить с цитированием
Старый 26.11.2018, 21:25   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Для начала определите какая кодировка у вас в файле.
p51x вне форума Ответить с цитированием
Старый 26.11.2018, 22:12   #5
Arthur80321
 
Регистрация: 26.11.2018
Сообщений: 5
По умолчанию

Создается ANSI, из файла в UTF-8, Юникод, читает абракадабру но Юникод Big Endian читает, хотя всеравно выдает ошибку (попытался просто поменять кодировки). Видимо нужно в самом коде писать...

Последний раз редактировалось Arthur80321; 26.11.2018 в 22:27.
Arthur80321 вне форума Ответить с цитированием
Старый 26.11.2018, 23:21   #6
Arthur80321
 
Регистрация: 26.11.2018
Сообщений: 5
По умолчанию

Решил - с русскими буквами, если не работает то и ладно...можно так сдать, оказывается. Спасибо!!!
Arthur80321 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Access Непроизвольная смена регистра в коде Ethex Помощь студентам 3 13.06.2017 14:00
переделать из С++ в С (смена регистра букв) 1o1man Общие вопросы C/C++ 4 17.03.2013 16:02
смена регистра в tmemo Tiva C++ Builder 4 25.04.2012 16:51
Смена регистра у текста в кавычка после заданного слова berezka04 Microsoft Office Word 18 26.09.2011 09:43
Смена регистра Last Microsoft Office Excel 6 12.08.2009 14:52