Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
LVV
129 / 116 / 39
Регистрация: 15.02.2010
Сообщений: 573
1

Строковая переменная

18.02.2010, 19:04. Просмотров 996. Ответов 3
Метки нет (Все метки)

Привет всем! Изучаю С++.
Ну, проблему кодировки в консольном окне вреде бы решил (работаю в Vicual C++ 2008).
Вот такая простенькая программка работает на русском языке: ПК спрашивает "как вас зовут", пользователь отвечает "Вася", в новой строке появляется "Привет, Вася".

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
using namespace std;
 
int main() {
    string nam;
    setlocale(LC_ALL, ".1251"); //включаеим нужную кодировку
 
    cout << "Как Вас зовут? " << endl;
        cin >> nam;
    cout << "Привет, ";
 
    setlocale(LC_ALL, ".OCP"); //возвращаемся в первоначальную кодировку
    cout  <<  nam  <<  "!";
    
    return 0;
}
Но вот другая проблема: почему я не могу ввести во время работы программы фразу с пробелами?
Например, если я введу "Вася и Коля", на экране будет приветствие "Привет, Вася!"
Подскажите, если не трудно, что я не так делаю.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2010, 19:04
Ответы с готовыми решениями:

строковая переменная
Скажите пожалуйста как в Борланде огласить строковую переменную. И какие библиотеки для этого надо...

строковая переменная
как сделать так чтобы в str (изначально ничего нет, и это строковый тип) str= str + &quot;D&quot; в str...

опреатор switch и строковая переменная
Я слышал, что это можно, но что-то у меня никак не получается. Покажите на работающем примере как...

Строковая константа
Вопрос: Непонятно почему можно так инициализировать строки, например char *szString = &quot;Это строка&quot;?

Глобальная переменная определена в хидере. Компилятор ругается на то, что переменная переопределена несколько раз
Исходники: /* main.cpp */ #include &quot;hider.h&quot; int main(void) { return 0; } /* foo.cpp */

3
Monte-Cristo
2800 / 1389 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
18.02.2010, 19:07 2
потому что cin >> до пробела вводит.

для string делай так:

C++
1
getline(std::cin, nam);
1
Nameless One
Эксперт С++
5795 / 3444 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
18.02.2010, 19:23 3
Цитата Сообщение от LVV Посмотреть сообщение
Но вот другая проблема: почему я не могу ввести во время работы программы фразу с пробелами?
Код немного корявый, но работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
        setlocale(LC_ALL, "Russian");
        char s[256];
        char c;
        size_t i=0;
        cin.read(&c, 1);
        while((c!='\n')&&(i<255))
        {
            s[i++]=c;
            cin.read(&c, 1);
        }
        s[i]='\0';
        cout << s << endl;
 
        system("pause");
        return 0;
}
1
LVV
129 / 116 / 39
Регистрация: 15.02.2010
Сообщений: 573
18.02.2010, 19:28  [ТС] 4
ВСЕМ спасибо.
Класненеько работает:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
using namespace std;
 
int main() {
    string n;
    setlocale(LC_ALL, ".1251");//включаеим нужную кодировку
 
    cout <<"Как Вас зовут? "<<endl;
            getline(cin, n);
    cout << "Привет, ";
 
    setlocale(LC_ALL, ".OCP");//возвращаемся в первоначальную кодировку
    cout << n << "!\n";
    system("pause");
    return 0;
}
0
18.02.2010, 19:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2010, 19:28

Переменная или переменная и условие
Привет всем. Стало интересно. Есть предположим функция. В ней ссылкой передается аргумент...

Строковая переменная
Как сделать что-то типо такого в программе. Введите слово. Если слово &quot;ДА&quot; написать &quot;Верно&quot; Если...

Строковая переменная
Была простейшая программа. Воспользовавшись вашим советом использовать оператор LOCATE, получил...


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

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

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