Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чтение русских символов 
:(
    Опции темы
NadezdaT
Дата 4.1.2013, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крылья



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 4.4.2012

Репутация: нет
Всего: нет



Здравствуйте!
Сколько тем ни облазила ничего толкового и понятного не нашла, может я не там ищу? smile 
Мне надо чтобы нормально читались русские символы, к примеру есть список фамилий добавляю новую, а она записывается каракулями... Подскажите что сделать чтобы читалось??? smile 
PM MAIL WWW   Вверх
bsa
Дата 4.1.2013, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Это пробовала?
PM   Вверх
NadezdaT
Дата 4.1.2013, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крылья



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 4.4.2012

Репутация: нет
Всего: нет



пробовала все равно охинея какая-то получается((
PM MAIL WWW   Вверх
bsa
Дата 4.1.2013, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



покажи, как ты пробовала. Какая у тебя операционная система и какая IDE (компилятор)?
PM   Вверх
NadezdaT
Дата 4.1.2013, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крылья



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 4.4.2012

Репутация: нет
Всего: нет



могу сказать одно или я что-то не понимаю или просто туплю вот код:
Код

// С3_11.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <vector>
#include <sstream>
#include <conio.h>
#include <locale.h>
using namespace std;

const int length = 17;
const int buf = 100;


template <class Gr, class fio>
struct fio_s{
    Gr group;
    fio familia[length+1];
    fio name[length+1];
    fio otchestvo[length+1];
    fio_s *next;
    fio_s *prev;    
};
template <class Gr, class fio>
class Date{
public:    
    fio_s<Gr, fio> * element_beg;
    fio_s<Gr, fio> * element_end;
    //---------------------------------------------------------------------------------
    //формирую первый элемент моего полного списка учеников
    fio_s<Gr, fio> * first(){
        FILE * file;
        while ((file = fopen("Spisok.bin", "r")) == NULL) {
            cout << "ERROR OPEN\n"; return 0;
        };    
        fio_s<Gr, fio> * pv = new fio_s<Gr, fio>;
        fscanf_s(file, "%i", &(pv->group));
        fgets(pv->familia, length, file);
        fgets(pv->name, length, file);
        fgets(pv->otchestvo, length, file);
        fclose(file);
        return pv;
    };
    Date(){
        element_beg = first();
        element_end = element_beg;
        //element->group = 0;//this->familia = 0;this->name = 0;this->otchestvo = 0;
        //this->element->next = 0;  
        //this->element->prev = 0;
    };
    ~Date(){

    };
    //---------------------------------------------------------------------------------
    //поиск элемента по заданному ключу...(на данный момент по фамилии...)
    fio_s<Gr, fio> * find(fio_s<Gr, fio> * const mod_beg, fio_s<Gr, fio> * const mod_key){
        fio_s<Gr, fio> *pv = mod_beg;
        while(pv != NULL){
            if (pv->group == mod_key->group){
                if (!(strcmp(pv->familia, mod_key->familia))){
                    break;
                };
            };
            pv = pv->next;
        };
        return pv;
    };
    //---------------------------------------------------------------------------------
    //Добавление всех оставшихся ученика из файла в конец списка
    void add(fio_s<Gr, fio> *const mod_beg, fio_s<Gr, fio> ** mod_end){
        //fio_s<Gr, fio> * pv = new fio_s<Gr, fio>;
        FILE * file;
        while ((file = fopen("Spisok.bin", "r")) == NULL) {
            cout << "ERROR OPEN\n"; return ;
        };    
        int i = 0;
        while (!feof(file)){
            fio_s<Gr, fio> *pv = new fio_s<Gr, fio>;
            fscanf_s(file, "%i", &(pv->group));
            fgets(pv->familia, length, file);
            fgets(pv->name, length, file);
            fgets(pv->otchestvo, length, file);
            if (i != 0){
                pv->next = 0;
                pv->prev = *mod_end;
                (*mod_end)->next = pv;
                *mod_end = pv;
            };
            char bufer[buf+1]; 
            fgets(bufer, buf, file); i++;
            //fseek(file, '\n', SEEK_CUR);
        };
        fclose(file);
    };
    //---------------------------------------------------------------------------------
    //Удаление элемента по ключу
    bool remove(fio_s<Gr, fio> **mod_beg, fio_s<Gr, fio> ** mod_end){
        fio_s<Gr, fio> *pv = new fio_s<Gr, fio>;
        cout << " Пожалуйста вводите правильно, иначе программа вас не поймет!! " << endl << " Также вводите ФИО с большой буквы!!" << endl << endl;
        cout << " Введите группу ученика : "; cin >> pv->group;
        cout << " Введите фамилию ученика : "; cin >> pv->familia;
        cout << " Введите имя ученика : "; cin >> pv->name;
        cout << " Введите отчество ученика : "; cin >> pv->otchestvo;
        pv->next = 0;
        pv->prev = 0;
        if (fio_s<Gr, fio> *mod_key = find(*mod_beg, pv)){
            if (mod_key == *mod_beg){
                *mod_beg = (*mod_beg)->next;
                (*mod_end)->next = 0;
            } else 
            if (mod_key == *mod_end){
                *mod_end = (*mod_end)->prev;
                (*mod_end)->next = 0;
            } else {
                (mod_key->prev)->next = mod_key->next;
                (mod_key->next)->prev = mod_key->prev;
            };
            delete mod_key;
            return true;
        };
        return false;
    };    
    //---------------------------------------------------------------------------------
    //Добавление нового ученика в конец списка
    void add_man(fio_s<Gr, fio> * const mod_beg,fio_s<Gr, fio> **mod_end){
        fio_s<Gr, fio> *pv = new fio_s<Gr, fio>;
        cout << " Пожалуйста вводите правильно, иначе программа вас не поймет!! " << endl << " Также вводите ФИО с большой буквы!!" << endl << endl;
        cout << " Введите группу ученика : "; cin >> pv->group;
        cout << " Введите фамилию ученика : "; cin >> pv->familia;
        cout << " Введите имя ученика : "; cin >> pv->name;
        cout << " Введите отчество ученика : "; cin >> pv->otchestvo;
        pv->next = 0;
        pv->prev = 0;
        (*mod_end)->next = pv;
        *mod_end = pv;
    };
    //---------------------------------------------------------------------------------
    //Вывод на экран
    void output(fio_s<Gr, fio> * const mod_beg){
        cout << "Вывод всего списка " << endl << endl;//вывод группа - фио
        cout << "^Group - ^surname          ^name              ^patronymic" << endl;
        fio_s<Gr, fio> *pv = mod_beg;
        while(pv != NULL){
            printf("%5i", pv->group);
            cout << "  - ";
            printf("%17s", pv->familia);
            printf("%17s", pv->name);
            printf("%17s", pv->otchestvo);
            pv = pv->next;
            cout << endl;
        };
        
        cout << endl << endl << "Нажмите Enter "; _getch();
    };
    //---------------------------------------------------------------------------------
    //Меню работы со списком вывод на экран 
    int menu_spi(){
        char bufer[buf];
        int chislo;
        do {
            cout << " 1 - Добавить нового студента в список" << endl;
            cout << " 2 - Удалить студента из списка" << endl;
            //если будет время сделать вывод по группам
            cout << " 3 - Вывести весь список" << endl;
            cout << " 4 - Выход в главное меню " << endl;
            cin >> bufer;
            chislo = atoi(bufer);
        }while (!chislo);
        return chislo;
    };
    //---------------------------------------------------------------------------------
    //Меню работы со списком передача функциям
    void menu_spisok(){
        while (1){
            system("cls");
            cout << " В данной программе не предусмотренны ошибки пользователя, пожалуйста будте аккуратны при изменении данных!" << endl << endl;
            switch(menu_spi()){
                case 1:{add_man(element_beg, &element_end); break;};
                case 2:{remove(&element_beg, &element_end); break;};
                case 3:{output(element_beg); break;};
                case 4:{return;};
                default: cout << "Надо вводить числа от 1 до 4!!!" << endl; break;
            };
        };
    };
    //---------------------------------------------------------------------------------
    //работа со списком
    void working_with_a_list(){
        add(element_beg, &element_end);
        menu_spisok();
    };
    //---------------------------------------------------------------------------------


    void write_s(){    
        FILE *file;
        while ((file = fopen("Spisok.bin", "r")) == NULL) {
            cout << "ERROR OPEN\n"; return;
        };        

        while (!feof(file)){
            fio_s<Gr, fio> *pv = new fio_s<Gr, fio>;
            fscanf_s(file, "%i", &(pv->group));
            fgets(pv->familia, length, file);
            fgets(pv->name, length, file);
            fgets(pv->otchestvo, length, file);
            if (((element_beg->group) == (pv->group))&&((element_beg->familia) == (pv->familia))&&((element_beg->name) == (pv->name))&&((element_beg->otchestvo) == (pv->otchestvo))) {
                
            };

        };
        fclose(file);
    };
    void print_s(){
        /*cout << "Вывод первого элемента " << endl << endl;//вывод группа - фио
        cout << "^Group - ^surname          ^name              ^patronymic" << endl;
        fio_s<Gr, fio> *pv = new 
        printf("%5i", this->element->group);
        cout << "  - ";
        printf("%17s", this->element->familia);
        printf("%17s", this->element->name);
        printf("%17s", this->element->otchestvo);
        //cout << this->group << " - " << this->familia << this->name << this->otchestvo << endl;
        cout << endl << endl << "Нажмите Enter "; _getch();*/
    };
};

int main()
{
    setlocale(LC_ALL, "Russian");                                                                    cout << " В данной программе не предусмотренны ошибки пользователя, пожалуйста будте аккуратны при изменении данных!" << endl << endl;
    //---------------------------------------------------------------------------------
    //работа со списком учеников
    Date<int, char> Mod;
    Mod.working_with_a_list(); 
    //Mod.print_s();
    //---------------------------------------------------------------------------------
    //работа с датами
    return 0;
}

ОС винда 7 64х если я правильно поняла про что ты спрашиваешь(я во многом еще дурак smile ), если что то стоит с# 2008
а где посмотреть IDE??
PM MAIL WWW   Вверх
bsa
Дата 5.1.2013, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



NadezdaT, во-первых, ты обратила внимание, что в статье про русский язык для вывода русского текста использовалась конструкция wcout << L"Привет, мир!" << endl; А что у тебя? По аналогии надо и ввод так осуществлять: wcin >> var;
во-вторых, IDE (integrated development environment - интегрированная среда разработки) у тебя Microsoft Visual Studio 2008
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1074 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.