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

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

Войти
Регистрация
Восстановить пароль
 
 
ДурачОк
0 / 0 / 0
Регистрация: 18.09.2015
Сообщений: 10
#1

Элементарная программа не работает. Почему? - C++

18.09.2015, 12:27. Просмотров 387. Ответов 20
Метки нет (Все метки)

Несколько лет не юзал плюсы. Что-то изменилось или я что-то забыл? Почему работает не правильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "RUS");
    float sqare;
    int zp, price = 200;
    string fio;
    cout << "Введите ФИО:" << endl;
    cin >> fio;
    cout << "Введите площадь:" << endl;
    cin >> sqare;
    zp = sqare * 200;
    cout << fio << ":" << endl;
    cout << "Ваша зарплата составляет: " << zp << "руб. за " << sqare << "кв.м." << endl;
    return 0;
}
через char тоже пробовал, не пашет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2015, 12:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Элементарная программа не работает. Почему? (C++):

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею в ввиду что сделал прогу которая меняет...

Элементарная программа на файлы - C++
Здравствуйте ув. форумчане. Нужно реализовать простенькую программу которая будет при запуске предлагать: 1)записать рандомную...

Почему не работает программа? - C++
Пожалуйста, подскажите, почему программа при введении 1 или 2 ничего не выводит? #include &lt;iostream&gt; #include &lt;windows.h&gt; using...

Почему не работает программа? - C++
что нужно изменить??? #include &lt;iostream&gt; using namespace std; class s { private: char str; //строка, которая вместит...

Почему не работает программа? - C++
//--------------------------------------------------------------------------- #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;vcl.h&gt; ...

Почему программа Работает? - C++
Объясните пожалуйста, как это может работать? Определять переменную вроде можно только один раз. А тут цикл каждый раз проверяет условие, и...

20
DrOffset
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,319
18.09.2015, 13:08 #16
Цитата Сообщение от ДурачОк Посмотреть сообщение
иероглифы
Я это писал когда еще не видел твое сообщение про иероглифы.
Это разные проблемы. Твоя проблема не связана напрямую с С++, это особенность виндовой консоли, которая работает в кодировке DOS 866 на русской винде. Забороть это можно разными способами, но простые способы зависят от используемой среды.
Код пишем в VS?
0
ДурачОк
0 / 0 / 0
Регистрация: 18.09.2015
Сообщений: 10
18.09.2015, 13:27  [ТС] #17
DrOffset, codeblock

Добавлено через 7 минут
Kerry_Jr, скажите какую поставить кодировку. я нашёл где менять

Добавлено через 2 минуты
Kerry_Jr,

Не по теме:

пол жизни прожил в Сочи. Как он там после моего уезда? Не раздраконили?



Добавлено через 1 минуту

Не по теме:

ошибка не в коде и желающих помочь стало меньше

0
zss
Модератор
Эксперт С++
6631 / 6193 / 2048
Регистрация: 18.12.2011
Сообщений: 16,150
Завершенные тесты: 1
18.09.2015, 13:29 #18
Попробуйте поменять OemToChar(fio,fio);
На
C++
1
CharToOem(fio,fio);
1
DrOffset
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,319
18.09.2015, 13:32 #19
Цитата Сообщение от ДурачОк Посмотреть сообщение
codeblock
Простой способ, но не самый хороший, состоит в том, чтобы преобразовать кодировку из 866 в текущую системную.
Для этого есть функция OemToChar
Можно сделать как-то так:
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
#include <iostream>
#include <string>
#include <vector>
#include <windows.h>
 
using namespace std;
 
std::string conv(std::string const & x)
{
    if(size_t len = x.size())
    {
        std::vector<char> buf(len + 1);
        OemToChar(x.c_str(), &buf[0]);
        return std::string(buf.begin(), buf.end());
    }
    return x;
}
 
int main()
{
    setlocale(LC_ALL, "RUS");
 
    float sqare;
    float zp, price = 200;
    string fio;
    cout << "Введите ФИО:" << endl;
    getline(cin, fio);
    cout << "Введите площадь:" << endl;
    cin >> sqare;
    zp = sqare * 200;
 
    cout << conv(fio) << ":" << endl;
    cout << "Ваша зарплата составляет: " << zp << "руб. за " << sqare << "кв.м." << endl;
    return 0;
}
Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от ДурачОк Посмотреть сообщение
ошибка не в коде и желающих помочь стало меньше
Слишком быстро хотите результата. Нужно быть терпеливее.

1
ДурачОк
0 / 0 / 0
Регистрация: 18.09.2015
Сообщений: 10
18.09.2015, 13:34  [ТС] #20
DrOffset, и мне потом к каждой программе этот вагон цеплять? должно быть общее решение. Попробую погуглить, вам спасибо. и вам zss, и вам Kerry_Jr, и вам за участие MotionMaster,
Если вдруг будет решение - отпишитесь пжл тут. Я поставлю уведомление на почту
0
DrOffset
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,319
18.09.2015, 13:37 #21
Цитата Сообщение от ДурачОк Посмотреть сообщение
скажите какую поставить кодировку. я нашёл где менять
Кодировка файла должна быть cp1251, чтобы setlocale(LC_ALL, "RUS") имела корректный эффект.
Шрифт консоли должен быть выставлен в Lucida Console.
Есть еще вариант. Возможно более простой.
Можно принудительно выставить кодировку символов консоли в 1251. Тогда код будет выглядеть так:
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
#include <iostream>
#include <string>
#include <vector>
#include <windows.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "RUS");
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    float sqare;
    float zp, price = 200;
    string fio;
    cout << "Введите ФИО:" << endl;
    getline(cin, fio);
    cout << "Введите площадь:" << endl;
    cin >> sqare;
    zp = sqare * 200;
 
    cout << fio << ":" << endl;
    cout << "Ваша зарплата составляет: " << zp << "руб. за " << sqare << "кв.м." << endl;
    return 0;
}
0
18.09.2015, 13:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2015, 13:37
Привет! Вот еще темы с ответами:

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

Почему не работает программа - C++
задача взята из учебника Дейтел Х. Как програмировать на С++ рис 6.1 вроде все набрал правильно но выдает ошибки вот код: #include...

Почему не работает программа? - C++
#include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;string&gt; using namespace std; void sortGroup(string *surnames, string...

Почему программа компилируется но не работает? - C++
Заявки (телевизоры) поступают на проверку к 3 пунктам контроля . Если все контроллеры заняты , заявки встают в очередь . Если заявка...


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

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

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