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

Массивы. Ошибка в программе - C++

Восстановить пароль Регистрация
 
GarrisonD
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 22
09.07.2012, 12:10     Массивы. Ошибка в программе #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
#include <fstream>
#include <iostream>
#include <string>
 
using namespace std;
 
void main()
{
    string mass [ 10 ];
        
    setlocale(LC_CTYPE, "RUS");
    
    for ( int a = 0; a < 10; a++ )
        {
            cout << "\t";
            cin >> mass [ a ];
            if ( mass [ a ] == "Конец" )
            {
                file << mass [ a ];
            }
            else file << mass [ a ];
            break;
        }
}
И ещё одна проблемма... При сохранении данных массива в текстовый файл на диск пишет слово, а потом много-много "HHHH...". Как это исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
for ( int a = 0; a < number; a++ )
        {
            cout << "\t";
            cin >> mass [ a ];
            if ( mass [ a ] == "Конец" )
            {
                file << mass [ a ];
            }
            else file << mass [ a ];
            break;
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2012, 12:10     Массивы. Ошибка в программе
Посмотрите здесь:

Вопрос по программе на тему: Массивы и указатели. Динамическое выделение памяти C++
Ошибка в программе C++
C++ ошибка в программе.
Массивы. Ошибка в программе C++
C++ Массивы. Ошибка в программе
C++ ошибка в программе
нужно найти ошибку в программе с++ на двумерные массивы C++
Ошибка в программе C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
09.07.2012, 14:29     Массивы. Ошибка в программе #2
Пользуйтесь SetConsoleCP (1251), SetConsoleOutputCP (1251) или system("chcp 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
28
#include <fstream>
#include <iostream>
#include <string>
#include <Windows.h>
 
using namespace std;
 
int main()
{
    string mass [10];
    //system("chcp 1251");
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
 
    for ( int i = 0; i<10; i++ )
    {
        cin >> mass [i];
        if ( mass [i] == "Конец" )
        {
            cout << mass [i];
        }
        else 
            cout << mass [i];
        break;
    }
    system("pause");
    return 0;
}
Добавлено через 1 час 23 минуты
Вот немного доработал код, надеюсь то что надо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ofstream file;
file.open("output.txt", ios::out | ios::trunc);
if (!file.is_open())
{
    cerr<<"Не удалось открить файл"<<endl;
    file.clear();
}
for ( int i = 0; i<10; i++ )
{
    file << "\t";
    cin >> mass [i];
    if ( mass [i] == "Конец" )
    {
        file << mass [i];
        break;
    }
    else 
        file << mass [i];
    continue;
}
file.close();
Yandex
Объявления
09.07.2012, 14:29     Массивы. Ошибка в программе
Ответ Создать тему
Опции темы

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