Форум программистов, компьютерный форум CyberForum.ru

Выводит не правильные символы - C++

Восстановить пароль Регистрация
 
Alkcatraz
 Аватар для Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
30.06.2013, 18:14     Выводит не правильные символы #1
помогите решить ошибку. выводит не то что нужно.если не сложно объясните в чём моя ошибка.Спасибо.
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 "stdafx.h"
#include "iostream"
using namespace std;
 
class strana
{
public:
    
    char name[20];
    float plosch;
    char kontin[20];
    strana(char *name,float plosch,char *kontin)
    {
        name=name;
        plosch=plosch;
        kontin=kontin;
 
    }
    void vivod(void)
    {
        cout<<"_________________"<<endl;
        cout<<"имя"<<name<<endl;
        cout<<"Площадь"<<plosch<<endl;
        cout<<"Континент"<<kontin<<endl;
        cout<<"_________________"<<endl;
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    strana a("Беларусь",500,"Евразия");
    a.vivod();
    return 0;
}
результат
Выводит не правильные символы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2013, 18:14     Выводит не правильные символы
Посмотрите здесь:

C++ вводится строка любых символов, выводит сначала все символы, потом цифры
static_cast<char>() не выводит некоторые символы C++
C++ cout Выводит не те символы
C++ Создайте процедуру, которая выводит строку, исключая символы, расположенные на нечетных позициях
C++ Составить программу, которая выводит на экран все символы, расположенные после первого символа'':''
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MaxDM1993
 Аватар для MaxDM1993
12 / 12 / 6
Регистрация: 27.11.2011
Сообщений: 33
30.06.2013, 18:19     Выводит не правильные символы #2
http://i.imgur.com/Y1utR.png
Я думаю у файла изначально стояла не та кодировка
Yamko
11 / 11 / 2
Регистрация: 10.03.2013
Сообщений: 104
30.06.2013, 18:21     Выводит не правильные символы #3
C++ (Qt)
1
setlocale(LC_ALL, "rus");
?
Alkcatraz
 Аватар для Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
30.06.2013, 18:29  [ТС]     Выводит не правильные символы #4
Цитата Сообщение от Yamko Посмотреть сообщение
C++ (Qt)
1
setlocale(LC_ALL, "rus");
?
Выводит не правильные символы

вот что получилось
vodilawofer
29 / 27 / 2
Регистрация: 27.09.2012
Сообщений: 123
30.06.2013, 19:03     Выводит не правильные символы #5
C++
1
setlocale(LC_ALL, "Russian");
Yamko
11 / 11 / 2
Регистрация: 10.03.2013
Сообщений: 104
30.06.2013, 19:10     Выводит не правильные символы #6
Попробуйте очистить переменные в начале программы
Alkcatraz
 Аватар для Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
30.06.2013, 19:17  [ТС]     Выводит не правильные символы #7
Цитата Сообщение от vodilawofer Посмотреть сообщение
C++
1
setlocale(LC_ALL, "Russian");
не получается

Добавлено через 42 секунды
Цитата Сообщение от Yamko Посмотреть сообщение
Попробуйте очистить переменные в начале программы
как их очистить?
Убежденный
Системный программист
 Аватар для Убежденный
14199 / 6214 / 986
Регистрация: 02.05.2013
Сообщений: 10,356
Завершенные тесты: 1
30.06.2013, 19:31     Выводит не правильные символы #8
1.

C++
1
2
3
4
5
strana(char *name,float plosch,char *kontin)
    {
        name=name;
        plosch=plosch;
        kontin=kontin
Здесь переменные name, plosch и kontin, переданные аргументами функции,
присваиваются сами себе. Попробуйте добавить к аргументам функции квалификатор
const (например, "char const *name,float const plosch,char const *kontin") и
код вообще не скомпилируется.

2. То, что кириллица не выводится на консоль - это в общем случае не Ваша
ошибка, а особенность работы консоли в Windows.
Можете попробовать сохранить исходники в UTF-8, установить для потока
std::cout нужную локаль (см. std::cout.imbue) и задать для консоли нужную
кодировку (например, Windows-1251), но это все равно не будет работать на
нерусских локализациях Windows, где в региональных настройках для неюникодных
программ стоит язык, отличный от русского.
ntrx
122 / 122 / 19
Регистрация: 03.01.2013
Сообщений: 241
30.06.2013, 19:34     Выводит не правильные символы #9
Измените еще в консоли шрифт на Lucida Console / Consolas
undertacker
 Аватар для undertacker
9 / 9 / 0
Регистрация: 28.04.2013
Сообщений: 55
30.06.2013, 19:34     Выводит не правильные символы #10
Alkcatraz, среда какая?
Dr_Quake
Заблокирован
30.06.2013, 19:37     Выводит не правильные символы #11
DOS/WIN же явно. RTFM!!!

Русские шрифты в консоли

SetLocale не пашет в половине сред.
Alkcatraz
 Аватар для Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
30.06.2013, 19:45  [ТС]     Выводит не правильные символы #12
Цитата Сообщение от undertacker Посмотреть сообщение
Alkcatraz, среда какая?
Microsoft Visual Studio 2012
Dr_Quake
Заблокирован
30.06.2013, 19:54     Выводит не правильные символы #13
Ну да, либо делай как написано в FAQ, либо конверти в Unicode проект и используй W вывод с SetLocale.
Yamko
11 / 11 / 2
Регистрация: 10.03.2013
Сообщений: 104
30.06.2013, 19:57     Выводит не правильные символы #14
Вот, только вместо чара сделал стринг
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <string>
using namespace std;
 
class strana
{
public:
    strana(string name, float plosch,string kontin)
    {
        setCountryName (name);
        setPlosch (plosch);
        setKontin (kontin);
    }
    
    void setCountryName (string name)
    {
        countryName=name;
    }
    string getCountryName()
    {
        return countryName;
    }
 
    void setKontin (string kontin)
    {
        materik=kontin;
    }
    string getKontin()
    {
        return materik;
    }
 
    void setPlosch (float plosch)
    {
        square=plosch;
    }
    float getPloch()
    {
        return square;
    }
    
    void vivod()
    {
        cout<<"_________________"<<endl;
        cout<<"имя "<<getCountryName()<<endl;
        cout<<"Площадь "<<getPloch()<<endl;
        cout<<"Континент "<<getKontin()<<endl;
        cout<<"_________________"<<endl;
    }
 
private:
    string countryName, materik;
    float square; 
};
 
int main()
{
    setlocale(LC_ALL,"rus");
    strana a("Беларусь",500,"Евразия");
    a.vivod();
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2013, 05:42     Выводит не правильные символы
Еще ссылки по теме:

выводит не правильные символы C++
C++ Почему выводит не понятные символы, а не то что вводилось пользователем?
C++ Пользователь вводит с клавиатуры слово длинной больше 7 символов. Программа выводит 4-7 символы этого слова на

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.07.2013, 05:42     Выводит не правильные символы #15
C++
1
2
3
4
5
6
strana(char *n, float p, char *k)
{
    strcpy(name, n);
    plosch = p;
    strcpy(kontin, k);
}
Yandex
Объявления
01.07.2013, 05:42     Выводит не правильные символы
Ответ Создать тему
Опции темы

Текущее время: 01:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru