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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.65
IceSqueez
Java, C# - Expert
67 / 67 / 2
Регистрация: 09.08.2011
Сообщений: 284
#1

Ввод string'a с консоли и запись его в вектор - C++

03.06.2012, 21:15. Просмотров 3951. Ответов 12
Метки нет (Все метки)

Здравствуйте дело в том что мне надо написать программу которая работает с строчным вектором типа string. Вроде-бы все нормально я набросал код, но я не знаю как ввести string с консоли. Мне не надо вводить чар и преобразовывать его в string, а сразу вводить string.
Вывод я знаю что как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <string.h>
using namespace std;
 
int main(){
string line;
cin >> line;
vector <string> a;
a.push_back(line);
cout << a.at(0).c_str;
system ("pause");
return 0;
}

Вот и короче string я не могу ввести
Прошу помощи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2012, 21:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод string'a с консоли и запись его в вектор (C++):

Инициализировать вектор потоком ввода из консоли - C++
Как вариант: int n; cin &gt;&gt; n; std::vector&lt;int&gt; a (n); Хочу: // перегрузка оператора std::vector&lt;int&gt; a( _input_ ); //...

Русский язык в консоли, класс, вектор с типом класса - C++
Добрый вечер. Написала класс. Сделала вектор с типом класса. Вектор хранит объекты класса. Добавляю в вектор элементы....

Ввод в консоли - C++
Возникла проблема: необходимо при вводе в консоли сделать так, чтобы при нажатии enter вводил значение по умолчанию. Также необходима...

Ввод строки с консоли - C++
Приветствую! Как реализовать ввод строки с консоли? В данный момент задать строку можно из кода программы. Конкретнее: string...

Ввод с консоли в *char - C++
Как ввести строку с консоли в переменную типа *char? Вот такой код не работает #include &lt;iostream.h&gt; char *string; void...

Безопасный ввод с консоли - C++
Добрый день есть функция безопасного ввода чисел в консоли: int Protocol::SafeIn() { int k, n = 0, flgS = 0, c = 0, q = 0; ...

12
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
03.06.2012, 21:16 #2
C++
1
getline(cin, line);
1
Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 21:22 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
    string str;
    cout << "Get str: ";
    getline(cin, str);
    cout << str << endl;
 
    return 0;
}
И кстати,

C++
1
#include <string.h>
Это Сишный заголовочный файл, он к STL не имеет никакого отношения. Что бы использовать STL нужно подключать, вот этот заголовок (без ".h"):

C++
1
#include <string>
1
IceSqueez
Java, C# - Expert
67 / 67 / 2
Регистрация: 09.08.2011
Сообщений: 284
03.06.2012, 21:25  [ТС] #4
Спасибо, но не помогло пишет getline не известный идентификатор...

Кстати, у меня не #include <string> а #include <string.h> рядок старого типа и надо использовать именно его.
0
Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 21:26 #5
Цитата Сообщение от IceSqueez Посмотреть сообщение
Спасибо, но не помогло пишет getline не известный идентификатор...
Скопируйте код ошибки. Скорее всего дело в заголовке, #include <string> - .h - там быть не должен.
0
IceSqueez
Java, C# - Expert
67 / 67 / 2
Регистрация: 09.08.2011
Сообщений: 284
03.06.2012, 21:28  [ТС] #6
Error 1 error C3861: 'getline': identifier not found d:\icesqueez\source\c++\college\practice\stldayone\stldayone\stldayone.cpp 21 1 STLDayOne
0
Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 21:29 #7
IceSqueez, заголовок поменяли, не помогло?
0
IceSqueez
Java, C# - Expert
67 / 67 / 2
Регистрация: 09.08.2011
Сообщений: 284
03.06.2012, 21:35  [ТС] #8
Если ставить #include <string> то все работает, но дело в том что на компьютерах где я пишу это задание нету string чистого поскольку там VisualStudio 2005. есть только сишный... #include <string.h>

Добавлено через 3 минуты
У кого какие соображения по этому поводу ?
0
Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 21:36 #9
Цитата Сообщение от IceSqueez Посмотреть сообщение
Если ставить #include <string> то все работает, но дело в том что на компьютерах где я пишу это задание нету string чистого поскольку там VisualStudio 2005. есть только сишный... #include <string.h>
В 2005 студии - должен быть stl, а значит есть и заголовок.

В <string.h> или <cstring> - определены функции для работы с Сишными строками, там нет типа данных string, соответственно, если в вашей студии нету STL (или этого заголовка), вы не сможете его использовать и вам придется реализовывать функционал через Сишные строки, но я рекомендую вам всё же по-сильнее покопаться, поскольку очень маловероятно, что в студии нету stl
1
IceSqueez
Java, C# - Expert
67 / 67 / 2
Регистрация: 09.08.2011
Сообщений: 284
03.06.2012, 21:43  [ТС] #10
Дак там есть STL... там нету <string> там они идет через хедер. Вот в чем проблема.


Кстати я еще не могу объявить итератор:
C++
1
vector <string>::iterrator iter=a.begin();
ошибка: Error 5 error C2065: 'iter' : undeclared identifier d:\icesqueez\source\c++\college\practice\stldayone\stldayone\stldayone.cpp 57 1 STLDayOne

Добавлено через 1 минуту
ошибку нашел ::iterator пишется с одной r

Добавлено через 2 минуты
Как с вектор а удалить элемент, по строке, я думал так:
C++
1
2
3
4
5
6
7
8
9
for (int i=0; i<n; i++)
    {
        if (a.at(i)==del)
        {
            a.remove(i);
            n--;
            i--;
        }
    }
del у меня тоже вводится как string. Но мне пишет что:

Error 1 error C2039: 'remove' : is not a member of 'std::vector<_Ty>' d:\icesqueez\source\c++\college\practice\stldayone\stldayone\stldayone.cpp 45 1 STLDayOne
0
Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 21:45 #11
Странно, поскольку msdn говорит, что данный заголовок в 2005 студии есть. Попробуйте тогда заголовочный файл со своего компьютера перенести туда и надеяться на то, что все заработает с его наличием
1
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
03.06.2012, 22:01 #12
Как удалить элемент из вектора http://en.cppreference.com/w/cpp/container/vector/erase
1
IceSqueez
Java, C# - Expert
67 / 67 / 2
Регистрация: 09.08.2011
Сообщений: 284
03.06.2012, 22:05  [ТС] #13
Все спасибо за помощь
0
03.06.2012, 22:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2012, 22:05
Привет! Вот еще темы с ответами:

Ввод строки с консоли - C++
Всем привет, такой вопрос. Нашел годный пример. Как реализовать ввод строки &quot;5*3-9/3&quot; вручную с консоли? Заранее благодарен. ...

Ввод чисел в консоли - C++
как сделать ввод n целых чисел на с++, простая штука, но че то не допираю, и реально ли это если не дано n, числа вводятся через пробел

потоковый ввод с консоли - C++
Всем привет! Нужно в цикле вводить строки с консоли, пока пользователю не надоест. Вопрос: как пользователю завершить ввод? Такой код: ...

Ввод предложения с консоли - C++
Здравствуйте, как в 7 строке сделать самостоятельный ввод текста. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int...


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

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

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