Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > ввод русских букв


Автор: anatox91 27.1.2008, 14:35
собственно вот в чем вопрос: есть что-то наподобие небольшого телефонного справочника
Код

#include <iostream>
#include <cstdio>
#include <windows.h>
using namespace std;

int main() {
    int i;
    char sym[100] = "Введите имя (английскими буквами): ";
    char sym1[100] = "Телефонный номер: ";
    char sym2[100] = "Отсутствует в каталоге.\n";
    char str[80];
    char numbers[20][80] = {
         "Home", "1",
         "Mother", "2",
         "Father", "3",
         "Sister", "4",
         "Brother", "5",
         "Daddy", "6",
         "Home2", "7",
         "DyadyaIgor", "8",
         };
         
         ::CharToOem(sym, sym);
         ::CharToOem(sym1, sym1);
         ::CharToOem(sym2, sym2);
    
         cout << sym;
         cin >> str;
         cin.ignore();
         
         for(i=0; i<16; i+=2)
           if(!strcmp(str, numbers[i])) {
              cout << sym1 << numbers[i+1] << "\n";
              break;
           }
         if (i == 16) cout << sym2;
         cin.get();   
         return 0;
         }

можно ли и если можно, то как сделать, так,  чтобы можно было вводить по-русски имя, и он искал это имя  в массиве, потому что если я меняю все имена на русские, то ничего не получается... пробовал и делать 
Код

cout << sym;
cin >> str;
cin.ignore();

::CharToOem(str, str);

ничего не выходит... smile 

Автор: mrbrooks 27.1.2008, 15:19
Имхо ты мат чать хоть бы посмотрел

Код

//Функции API Windows, переводят строку в текст MS-DOS
BOOL CharToOem(
    LPCTSTR lpszSrc,    // исходная строка  
    LPSTR lpszDst    // результат перевода 
   );    



обратное действие

Код

//Функции API Windows, переводят текст MS-DOS в строку
BOOL OemToChar(
    LPCTSTR lpszSrc,    // исходная строка  
    LPSTR lpszDst    // результат перевода 
   );    


Это я к тому что параметры в функциях разные а у тебя одни и теже  smile

Добавлено через 6 минут и 55 секунд
И здесь в FAQ  http://forum.vingrad.ru/forum/topic-189083/0.html. 

Автор: anatox91 27.1.2008, 15:33
спасибо большое ,извиняюсь за совсем нубский вопрос, совсем забыл про обратную функцию  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)