Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 245
#1

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

18.02.2010, 19:04. Просмотров 733. Ответов 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;
}
Но вот другая проблема: почему я не могу ввести во время работы программы фразу с пробелами?
Например, если я введу "Вася и Коля", на экране будет приветствие "Привет, Вася!"
Подскажите, если не трудно, что я не так делаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2010, 19:04     Строковая переменная
Посмотрите здесь:

строковая переменная - 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++
Дано натуральное число N. Найти все натуральные числа меньше N, которые одновременно являются числами Фибоначчи и простыми числами. пишу...

Переменная в TextBox - C++
пишу в TextBox переменную: float p=1; textBox2-&gt;Text = p.ToString(); но допустим у меня g=g+1;

Идентификатор и Переменная - C++
Привет всем. Почитал что идентификатор это ссылка на память где хранится значение. Например создали переменную int temp = 10; ...

Переменная не объявлена - C++
В строке 26 выдает ошибку о том, что переменная i не объявлена. Подскажите, пожалуйста, как и где ее нужно объявить? //P6-14.CPP -...

Текстовая переменная - C++
Добрый день! Имеется текстовый файл с римскими цифрами. Необходимо распознать их. Я создал словарь 20-ти вариантов римских цифр. ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
2788 / 1374 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
18.02.2010, 19:07     Строковая переменная #2
потому что cin >> до пробела вводит.

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

C++
1
getline(std::cin, nam);
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
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;
}
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 245
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;
}
Yandex
Объявления
18.02.2010, 19:28     Строковая переменная
Ответ Создать тему
Опции темы

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