С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
9 / 9 / 6
Регистрация: 04.12.2011
Сообщений: 137

Что-то с кодировкой

13.11.2013, 21:36. Показов 1199. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При сохранении файла выдаётся сообщение (см. картинку).
Суть цикла- проверка на принадлежность символов строки русскому, латинскому алфавиту и +пробел.
При запуске русские буквы не проходят, исключая некоторые случайные символы как 'ы' и ещё какие-то.
C
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
#include <stdio.h>
 
int main(){
    int flag1=0;
    char *g,*p;
    p=new char[50];
    g=p;
 
    while (!flag1){
            printf("vvedite stroky\n");
 
            gets(g);
 
            while (*g!='\0'){
                if ((*g>='а' && *g<='я')||(*g>='А' && *g<='Я')||*g==32){
                    ++g;
                }
                else{
                    printf("Incorrect input. Try again\n");
                    break;
                }
            }
            if (*g=='\0'){
                flag1=1;
            }
    }
    printf ("%s",p);
    getchar();
 
}
Изображения
 
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2013, 21:36
Ответы с готовыми решениями:

Что-то с кодировкой
Доброго времени суток! Решил такую задачку: #include &lt;stdio.h&gt; #define MAXLINE 1000 int getline (char line, int line); ...

С кодировкой базы данных и кодировкой сайтом и кодировкой файла разобраться не могу
С кодировкой базы данных и сайтом файлом разобраться не могу. Я на своем сайте вывожу данные из другой mysql.... МММ сайт на win 1251 а...

непонятки с отображением языка. что-то с кодировкой или что это?
задали выполнить сайт из 3-4 страниц. первую сделала - работает.. исходя из нее решила делать остальные,чуть переделывая или добавляя...

6
 Аватар для ПерС
587 / 490 / 371
Регистрация: 05.11.2013
Сообщений: 1,271
Записей в блоге: 6
14.11.2013, 08:26
и чо? предлагает сохранить файл в юникоде вместо win-1251
поставь, например, числовые коды вместо букв... 'я'==255 (для русской вин-кодировки)
остальное в стандартной проге "Таблица символов" можно посмотреть

вот тут ты неправ, по-моему
C++
1
 while (*g!='\0'){
при вводе с клавы откуда возьмется байт '\0' ?
хочегь вводить посимвольно - getc
0
9 / 9 / 6
Регистрация: 04.12.2011
Сообщений: 137
14.11.2013, 19:02  [ТС]
Цитата Сообщение от ПерС Посмотреть сообщение
и чо? предлагает сохранить файл в юникоде вместо win-1251
поставь, например, числовые коды вместо букв... 'я'==255 (для русской вин-кодировки)
остальное в стандартной проге "Таблица символов" можно посмотреть
Пробовал поставить ascii коды вместо русских букв. Итог тот же. При просмотре значений отладчиком русским буквам вообще присваиваются отрицательные значения хотя они char.

Цитата Сообщение от ПерС Посмотреть сообщение
вот тут ты неправ, по-моему
C++
1
 while (*g!='\0'){
при вводе с клавы откуда возьмется байт '\0' ?
хочегь вводить посимвольно - getc
gets ставит \0 в конце строки как считает
0
 Аватар для ПерС
587 / 490 / 371
Регистрация: 05.11.2013
Сообщений: 1,271
Записей в блоге: 6
14.11.2013, 19:05
Цитата Сообщение от koperfild Посмотреть сообщение
отрицательные значения хотя они char
значит у тя signed char по умолчанию, и так бывает
пиши везде unsigned char
0
9 / 9 / 6
Регистрация: 04.12.2011
Сообщений: 137
15.11.2013, 03:17  [ТС]
если ставить unsigned char то функция gets ругается, что unsigned char не соответствует типу аругмента функции, а именно типу char.
0
 Аватар для Dizark
25 / 25 / 16
Регистрация: 12.04.2013
Сообщений: 84
15.11.2013, 04:00
gets'у пофигу, что там выводит отладчик, положительное или отрицательное число, он работает с кодом символа.

А по поводу того, что программа не реагирует на русские символы - это из-за того (ну если конечно все это происходит в Win системе) программа написана в кодировке win1251 (или UTF-8), а консоль работает в кодировке DOS-866
Ну и в результате программа сравнивает коды символов разных кодировок.

Попробуйте перед запуском exe'шника выполнить в консоли команду chcp 1251

или.. хотя не знаю... в main в самом начале добавить вот такую строчку:

C
1
setlocale (0, "Rus");
0
2 / 2 / 3
Регистрация: 24.02.2013
Сообщений: 106
15.11.2013, 08:11
немного изменил код в visual studio все работает
C
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
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
int main()
{
    int flag1 = 0;
    char *g = malloc(50), *p;
    SetConsoleCP(1251); 
    SetConsoleOutputCP(1251);
    //setlocale(LC_ALL, "Rus");
    p = g;
    while(!flag1)
    {
        printf("vvedite stroky\n");
        gets(g);
        while(*g!='\0')
        {
            if((*g>='а' && *g<='я')||(*g>='А' && *g<='Я')||*g==32)
                ++g;
            else
            {
                printf("Incorrect input. Try again\n");
                break;
            }
        }
        if(*g=='\0')
            flag1=1;
    }
    printf("%s",p);
    getchar();
    free(p);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2013, 08:11
Помогаю со студенческими работами здесь

Что-то с кодировкой?
Всем доброго времени. Windows7 x64 стоит Apache, UserGate, Kerio Connect. В общем проблемы начались с того, что панель...

что то с кодировкой
записывает вместо текста кракозябры function TForm1.WriteFile: boolean; var buf:PChar; begin if...

Что-то с кодировкой
первый раз с таким встречаюсь, половина букв нормальные-половина нет. как это поправить?

Что с кодировкой?
Удалась возможность разжиться ПК с Виндовс. И столкнулся с непонятным. Кодировка СР1251. В консоли выбран шрифт Lucida Console, т. е. той...

Что с кодировкой?
Помогите пожалуста. Возникла такая проблема с кодировкой. Я написал сайт. На сервере работает нормально но когда я скинул на хостинг...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru