Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
hatter
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 140
#1

Некорректное отображение с функцией gets - C++

01.05.2011, 00:30. Просмотров 1209. Ответов 12
Метки нет (Все метки)

Когда использую функцию gets она
во-первых, не воспринимает русский текст, хотя я в мейне добавляю setlocale(0,"")
во-вторых, даже если латинскими пишу слова больше трех символов она при выводе на экран добавляет к ним хаотичные буквы или вообще символы.
С чем может быть связано? Как исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2011, 00:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Некорректное отображение с функцией gets (C++):

Некорректное отображение окна - C++
Добрый день . при создание экземпляра окна , задаю стиль со всем нужными мне параметрами , но окно отображается не корректно, не...

Некорректное отображение строчек анкеты C++ - C++
При введении на экран анкеты происходит некорректное отображение строчек Номер телефона?= Место учебы?=. Подскажите, как это исправить? ...

Некорректное отображение элементов массива - C++
Есть одномерный массив последовательных положительных чисел. Когда перемешиваю его элементы случайным образом и вывожу результат на экран,...

WxString(4 байта) некорректное отображение значения шестнадцатеричных значений - C++
При отображении считанного MAC адреса в шестнадцатиричном виде(да и в десятичном тоже), в поле wxStaticText отображаются лишние символы,...

Вывод выражения типа "float". Некорректное отображение - C++
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <clocale> #include <stdio.h> #include <stdlib.h> #include <iostream> ...

Некорректное отображение - Windows XP
недавно я хотел скопировать текст и отправить сообщение, своего решения на форум текст был взят из среды разработки русские слова...

12
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
01.05.2011, 01:21 #2
во-первых, setlocale(0,"") надо писать при вводе русских символов, а при выводе как раз наоборот убирать.
во-вторых, это не связанно с функцией gets. Код в студию.
0
hatter
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 140
01.05.2011, 02:18  [ТС] #3
Программка разбивает предложение на составляющие его слова
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
#include "stdafx.h"
#include <iostream>
#include <cstdio>
 
using namespace std;
 
int main()
    {   setlocale (0,"");
        char str[80];
        char token[80];
 
        int i,j;
        
        cout<<"Предложение: ";
        gets (str);
 
        for (i=0;;i++)
        {
            for(j=0;str[i]!=' ' && str[i]; i++, j++)
                token[j]=str[i];
            token[j]!='\0';
            cout << token <<"\n";
            if(!str[i]) break;
        }
     getchar();
     getchar();
 
     return 0;
    }
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
01.05.2011, 02:59 #4
gets работает нормально, по ходу ты в циклах малость перемудрил.
0
hatter
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 140
02.05.2011, 16:13  [ТС] #5
В каком смысле?
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
02.05.2011, 16:29 #6
В том самом. Ошибка в разбиении предложения.
Цитата Сообщение от hatter Посмотреть сообщение
token[j]!='\0';
=>
token[j] = '\0';
1
hatter
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 140
03.05.2011, 01:32  [ТС] #7
благодарю, не сообразил сам! Но все-таки русский текст выводится кракозябрами. Можно ли это исправить?
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
03.05.2011, 05:47 #8
setlocale убери.
0
hatter
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 140
03.05.2011, 12:09  [ТС] #9
Уже пробовал! gets отображает все нормально. Но в этом случае cout выводит на экран не пойми что!
Просто хочу понять, как сделать, чтобы и cout и gets с русским шрифтом работали нормально.
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
03.05.2011, 12:50 #10
Цитата Сообщение от hatter Посмотреть сообщение
Но в этом случае cout выводит на экран не пойми что!
я так понимаю речь идет о константных строках на русском языке? Типа
C++
1
cout<<"Предложение: ";
?
Тогда тут Русские шрифты в консоли можно посмотреть много разных способов, мне больше нравится в посте номер 3.
0
hatter
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 140
04.05.2011, 03:11  [ТС] #11
Странно, но вариант с
SetConsoleCP(1251);
SetConsoleOutputCP(1251); у меня не работает. так же cout кракозябры выводит.
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
04.05.2011, 03:21 #12
Комментарии в начале читал? Про смену шрифтов?
1
hatter
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 140
04.05.2011, 04:13  [ТС] #13
Все получилось, благодарю! Я сначала не сообразил про окно, стал искать в настройках компилятора, подумал, что где то там свойства))) Потом только дошло!
0
04.05.2011, 04:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 04:13
Привет! Вот еще темы с ответами:

Некорректное отображение - WordPress
Всем привет, помоги пожалуйста советом. У меня есть сайт http://www.mia-luce.ru/ , во всех браузерах все работает нормально, но когда...

Некорректное отображение - Софт
Подскажите, пожалуйста, как решить проблему. Баннер, состоящий из 4 частей, отображается на мониторе не горизонтально, как положено, а...

Некорректное отображение - HTML, CSS
Помогите, пожалуйста, с проблемой. Есть какой той каркас.Макет будет фиксированным. Я задаю контейнеру (там, где будет находиться весь...

Некорректное отображение в ИЕ - Web-дизайн
Добрый день! Как исправить некорректное отображение в ИЕ сайта advokatlogika.ru


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru