Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LVV
94 / 101 / 21
Регистрация: 15.02.2010
Сообщений: 375
#1

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

18.02.2010, 19:04. Просмотров 824. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строковая переменная (C++):

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

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

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

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

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

Переменная или переменная и условие - C++
Привет всем. Стало интересно. Есть предположим функция. В ней ссылкой передается аргумент Status; Как лучше сделать? ...

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

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

C++
1
getline(std::cin, nam);
1
Nameless One
Эксперт С++
5780 / 3429 / 255
Регистрация: 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
94 / 101 / 21
Регистрация: 15.02.2010
Сообщений: 375
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
Привет! Вот еще темы с ответами:

переменная - C++
#include &lt;iostream&gt; using namespace std; void func1(); void func2(); int count; // Это голобальная переменная int main()...

Переменная - C++
Мне нужная переменная(ые) в 1 байт. Где её можно взять?

Переменная не инициализирована - C++
Доброго времени суток. Tree.h #pragma once #include &lt;iostream&gt; template&lt;typename T&gt; struct Tree {

Булевская переменная - C++
Написать программу, в результате выполнения которой булевская переменная t получает значение true, если выполняется указанное условие, и...


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

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

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