Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
135 / 121 / 42
Регистрация: 15.02.2010
Сообщений: 630
1

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

18.02.2010, 19:04. Просмотров 1180. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2010, 19:04
Ответы с готовыми решениями:

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

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

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

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

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

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

C++
1
getline(std::cin, nam);
1
Эксперт С++
5810 / 3461 / 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
135 / 121 / 42
Регистрация: 15.02.2010
Сообщений: 630
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2010, 19:28

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Строковая переменная
Не могу понять как задать строковую переменную. Перетыкал всю клавиатуру, но двойных кавычек так и...

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


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

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

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