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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 89
#1

считывание строки( библиотека string) - C++

30.01.2014, 12:03. Просмотров 2407. Ответов 22
Метки нет (Все метки)

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

Строки библиотека string.h - C++
Дана строка символов, состоящая из букв и цифр. Найти количество букв в данной строке. Использовать функции библиотеки string.h

Считывание строки из бинарного файла в string - C++
Привет всем!! Помогите новичку понять почему происходит ошибка при считывании строки из файла. void LoadFile() { string j; ...

Библиотека String - C++
Чем плох String? Когда его не стоит использовать?

Библиотека string.h, функция strcat - C++
Написал вот такое, но в программе все равно текст не выводит. Должно работать точно также, как и обычная библиотека strcat. char *...

Библиотека Обработки строк string.h - C++
Задание таково: Разработайте программу работы со строками. Организуйте ввод исходных данных с клавиатуры. Используйте функции из библиотеки...

Считывание string из файла - C++
Есть текстовый файл. Первая строчка, в которой находится название не получается считать в string. Идущие за ним цифры считываются...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
30.01.2014, 12:04 #2
Цитата Сообщение от Layzie Посмотреть сообщение
записывается все только до первого пробела
ну если делаете через
C++
1
std::cin >> string;
то это нормально
правильно так:
C++
1
std::getline(std::cin, string);
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.01.2014, 12:05 #3
http://www.cplusplus.com/reference/s...tring/getline/
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
30.01.2014, 12:10 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main ()
{
  string name;
 
  cout << "Enter the string: ";
  getline (cin,name);
  cout << "length of string: " << name.size() << endl;
 
  cin.get();
}
P.S. >> Можно также воспользоваться name.length()
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
30.01.2014, 12:11 #5
Esecman,
C++
1
#include <string>
не лишний будет
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
30.01.2014, 12:12 #6
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
Esecman,
C++
1
#include <string>
не лишний будет
И без него компилироваться должно ;-)
Ev[G]eN
30.01.2014, 12:13
  #7

Не по теме:

спорить бесполезно

Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
30.01.2014, 12:15 #8
Цитата Сообщение от Ev[G]eN Посмотреть сообщение

Не по теме:

спорить бесполезно

Так Вы мне докажите, что лишней не будет?

Ах, да. Забыл
Данный код работает на dev-C++
А на Visual -
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
int main ()
{
  string name;
 
  cout << "Enter the string: ";
  getline (cin,name);
  cout << "length of string: " << name.length() << endl;
 
  cin.get();
}
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
30.01.2014, 12:17 #9
Esecman, в Dev на одном iostream'e можно все делать..он разрешает все..кстати, не удивлюсь, что и без него прекрасно будет работать
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
30.01.2014, 12:19 #10
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
Esecman, в Dev на одном iostream'e можно все делать..он разрешает все..кстати, не удивлюсь, что и без него прекрасно будет работать
Использовал только cstdlib
Ответ: 7`string' undeclared (first use this function)
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.01.2014, 12:19 #11
Цитата Сообщение от Esecman Посмотреть сообщение
Так Вы мне докажите, что лишней не будет?
Доказательство в том, что строковый тип std::string описан в <string>, а то, что он включается косвенно через <iostream> зависит от компилятора. Если вы хотите чтобы код был независим от производителя компилятора старайтесь писать правильно, т.е. включать все необходимые заголовочные файлы.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
30.01.2014, 13:03 #12
Цитата Сообщение от Layzie Посмотреть сообщение
задача в том чтоб считать сообщение с клавиатуры полностью(русские буквы пробелы знаки всякие).
а не wstring Вам надо использовать?
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 89
30.01.2014, 13:11  [ТС] #13
C++
1
2
3
4
    
        string S;
    cout<<"vvedite text";
    getline(cin,S);
все было бы хорошо но после таких манипуляций, даже не считывается ничего.

Добавлено через 2 минуты
Цитата Сообщение от aLarman Посмотреть сообщение
а не wstring Вам надо использовать?
мне честно говоря без разницы что использовать
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
30.01.2014, 13:22 #14
просто в string хранится char а там нет русских букв
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.01.2014, 13:31 #15
Цитата Сообщение от aLarman Посмотреть сообщение
просто в string хранится char а там нет русских букв
не болтайте ерундой. Про кодовую таблицу слышали?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 13:31
Привет! Вот еще темы с ответами:

Библиотека для удобной работы с типом string с++ - C++
Привет, надо проводить много манипуляций со строками - обрезка, перенос строки, выравнивание - для интерфейса 3D-игры. Есть ли готовая...

Считывание из файла в массив string и int - C++
Не могу вставить позицию разделителя после определения числовой переменной. Вылетает с ошибкой abort() has been called при вставке кода...

Считывание vector<string> - жрёт память - C++
Делаю считывание vector&lt;string&gt; из файла. При первом запуске (программа записана в автозапуск и запускается со sleep'ом в 30 секунд) жрёт...

Считывание String посимвольно либо Char in Switch - C++
Здравствуйте, суть такова: Нужно написать 3 числа (0-7), а дальше считать каждое число по отдельности и в зависимости от числа, выполнить...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.01.2014, 13:31
Ответ Создать тему
Опции темы

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