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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Revelador
1 / 1 / 0
Регистрация: 17.02.2014
Сообщений: 22
#1

Ввод-вывод: Не могу ввести строку в std::string! - C++

10.05.2014, 22:21. Просмотров 1229. Ответов 24
Метки нет (Все метки)

Ничего не понимаю! Должно работать:
C++
1
2
3
4
5
6
7
8
9
10
void Engine::CreateNewNote()
{
    std::cout << "Title: ";
    std::string title;
    getline(std::cin, title);
 
    std::cout << "Text: ";
    std::string text;
    getline(std::cin, text);
}
Что получилось на скрине.
Миниатюры
Ввод-вывод: Не могу ввести строку в std::string!  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2014, 22:21     Ввод-вывод: Не могу ввести строку в std::string!
Посмотрите здесь:
C++ Считать текст из файла в строку типа std::string (файловый ввод/вывод)
Как скопировать строку типа std::string в другую строку такого же типа? C++
Ncurses | вывод на экран строки std::string C++
Скопировать с конца строки std::string четыре символа в другую строку C++
Как на C++ ввести с консоли строку с пробелами в тип string? C++
String массив, ввод и вывод элементов массива C++
C++ std::string + std::remove
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KIngston
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 11
14.05.2016, 22:22     Ввод-вывод: Не могу ввести строку в std::string! #21
Благодарю

Добавлено через 2 часа 54 минуты
Прошу помощи, ибо не могу исправить свои ошибки. Лазил в интернете до ночи — ответа не нашел. Поэтому оставлю здесь свой коммент — может кто подскажет. Пытаюсь создать динамическую переменную string и в процессе цикла while удалять ее пока она не примет нужное значение. Заранее спасибо.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <string>
using namespace std;
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << "Привет, я твой личный собеседник на ближайшие 40 секунд. Мое имя Компьютер" << endl;
    string *greeting = new string;
    cin >> greeting;
    if (greeting == "Привет" || greeting == "Здравствуйте" || greeting == "Приветствую" || greeting == "привет" || greeting == "да" || greeting == "Да" || greeting == "здравствуйте" || greeting == "приветствую")
        cout << "Как Вас зовут?" << endl;
    else
        while (greeting == "Привет" || greeting == "Здравствуйте" || greeting == "Приветствую" || greeting == "привет" || greeting == "да" || greeting == "Да" || greeting == "здравствуйте" || greeting == "приветствую");
        {
            cout << "Давайте начнем с приветствия" << endl;
            cin >> greeting;
        }
}
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6423 / 3062 / 304
Регистрация: 04.12.2011
Сообщений: 8,351
Записей в блоге: 3
15.05.2016, 01:51     Ввод-вывод: Не могу ввести строку в std::string! #22
KIngston, тут не нужна такая переменная. Достаточно создать её на стеке. И ещё. 16-я строка точкой с запятой не по делу заканчивается.
А в принципе для организации диалога лучше меню с выбором вариантов)
KIngston
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 11
15.05.2016, 06:57     Ввод-вывод: Не могу ввести строку в std::string! #23
Исправь пожалуйста, а то я не понял как сделать то, что ты сказал. Меню также будет добавлено позже.
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6423 / 3062 / 304
Регистрация: 04.12.2011
Сообщений: 8,351
Записей в блоге: 3
15.05.2016, 09:38     Ввод-вывод: Не могу ввести строку в std::string! #24
Цитата Сообщение от KIngston Посмотреть сообщение
Исправь пожалуйста, а то я не понял как сделать то, что ты сказал.
C++
1
2
//string *greeting = new string;
string greeting;
что касается остального, то непонятно как должна вести себя программа (заявка на искусственный интеллект).
Например блок if else if
где последний if представлен в виде while это довольно интересное решение, но одинаковость условия if и while сбивает с толку.
Если Вы только начинаете, попробуйте без сравнений строк обойтись. Чтобы тестировать подобный код их потом придётся вводить. Пока должно быть достаточно целых переменных.
Например напишите массив строк:
string greatings[]={"Hi", "Привет", "Yes", "Да", "No", "Нет"};
а лучше -один английский, а другой русский.
И попробуйте организовать диалог на языке собеседника. Только не усложняйте поведение. Строковые переменные и возможная логика ведут к задачам экспертных систем. Попробуйте что-то попроще.
Но придумайте сами. Иначе не интересно.
зы сейчас заметил, что Вы задали вопрос в чужой теме. Начните свою. Придумайте хорошее название. Профит: Поняв как выразить кратко, то что Вы хотите сделать Вы наполовину уже решите вопрос.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2016, 19:56     Ввод-вывод: Не могу ввести строку в std::string!
Еще ссылки по теме:
std::string -> std::wstring C++
C++ 'string' : undeclared identifier, std::string
Не могу ввести в файл строку во время чтения, указатель позиции в файле C++
C++ Ввод/вывод в С++: не могу разобраться.
C++ Чтение бинарного файла в поток std::ifstream и вывод в другой бинарный файл std::ofstream (создание копии)

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

Или воспользуйтесь поиском по форуму:
KIngston
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 11
15.05.2016, 19:56     Ввод-вывод: Не могу ввести строку в std::string! #25
Окей, знаешь, спасибо. Это реально тяжеловато пока что для меня. Думаю Я пока что оставлю этот проект, и возобновлю его позже, когда научусь оперировать файлами и графическим интерфейсом. Кстати, цель создания этой программы была скомбинировать все полученные знания на С++ в одну программу. Сначала я думал что по мере обучения я буду постепенно добавлять новые строки из различных разделов, но оказалось что все это между собой ужасно конфликтует, а чтобы поисправлять все это надо знать много терминов, которые приобретаются в процессе обучения. Я думаю что ты прав, стоит отложить этот проект. Позже, я создам по этому тему(ибо проблемы будут, и мне одинаково будет нужна помощь таких гуру как ты). можешь проследить за этим, добавившись в друзья.
Yandex
Объявления
15.05.2016, 19:56     Ввод-вывод: Не могу ввести строку в std::string!
Ответ Создать тему
Опции темы

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