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

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

Войти
Регистрация
Восстановить пароль
 
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
#1

Ввод строки - C++

09.01.2014, 00:16. Просмотров 410. Ответов 12
Метки нет (Все метки)

Как ввести массив символов (строку)? (желательно все возможные варианты)
А то через gets фигня какая-то получается.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 00:16     Ввод строки
Посмотрите здесь:

Ввод строки в С++ - C++
Подскажите как сделать так, чтобы введенная строка (string) сохранилась без учета пробелов? а то getline пробелы тоже сохраняет, а cin...

с++ ввод строки и .... - C++
По заданию: Пользователь вводит строку и символ, программа выводит сколько раз символ встречался в строке. в другой програмке я...

Ввод строки - C++
Помогите решить такую проблему: Мне нужно ввести строку, которая состоит более 1 слова. когда я пишу: ... char a, b, c; cin>>a; ...

Ввод строки - C++
У меня возникла такая проблема: как ввести строку из консоли. Написал вот что: cout<<"Input time \"hour:minute:second\"\n"; char...

ввод строки - C++
привет! у меня есть проблемка.. для начала прога: #include <stdlib.h> int main (void) { return system("ping 192.168.3.1"); } ...

ввод строки - C++
вводиться строка. как выделить память под ровно то количество символов, которое ввели. как-то можно сначала узнать количество символов...

Ввод строки - C++
#include<iostream> #include<clocale> using namespace std; #define DEBUG class Monom{ protected: int Step,Kof; public: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
2089 / 1596 / 305
Регистрация: 15.12.2013
Сообщений: 6,418
09.01.2014, 00:20     Ввод строки #2
Как вариант:

C++
1
2
3
char mas[20];
cout<<" Vvod"<<endl;
cin>>mas;
Ev_Hyper
Заблокирован
09.01.2014, 00:23     Ввод строки #3
так только до первого пробела будет считывать.
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
09.01.2014, 00:23  [ТС]     Ввод строки #4
Не подходит тут посимвольный ввод,а мне нужно сразу целиком строку ввести.
S_el
2089 / 1596 / 305
Регистрация: 15.12.2013
Сообщений: 6,418
09.01.2014, 00:24     Ввод строки #5
string можно вместо char.

Добавлено через 35 секунд
Цитата Сообщение от andryshka Посмотреть сообщение
Как ввести массив символов
char это и есть массив символов.
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
09.01.2014, 00:25  [ТС]     Ввод строки #6
Цитата Сообщение от S_el Посмотреть сообщение
char это и есть массив символов.
разве char это не символ?
Ev_Hyper
Заблокирован
09.01.2014, 00:27     Ввод строки #7
C++
1
2
char mas[20];
cin.getline(mas,20);
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
09.01.2014, 00:29  [ТС]     Ввод строки #8
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
cin.getline(mas,20);
объясните пожалуйста эту строку.Зачем ещё раз 20 писать если мы объявили уже массив в 20 элементов?И что за принцип работы функции cin.getline?
S_el
2089 / 1596 / 305
Регистрация: 15.12.2013
Сообщений: 6,418
09.01.2014, 00:38     Ввод строки #9
Цитата Сообщение от andryshka Посмотреть сообщение
разве char это не символ?
Символ,все верно.

Добавлено через 1 минуту
Цитата Сообщение от andryshka Посмотреть сообщение
объясните пожалуйста эту строку.Зачем ещё раз 20 писать если мы объявили уже массив в 20 элементов?И что за принцип работы функции cin.getline?
ответ:
Функция getline () читает целую строку, используя символ новой строки,
который передан клавишей <Enter>, для обозначения конца ввода. Этот метод
инициируется вызовом функции cin.getline(). Функция принимает два аргумента. Первый
аргумент — это имя места назначения (т.е. массива, который сохраняет введенную
строку), а второй — максимальное количество символов, подлежащих чтению. Если,
скажем, установлен предел 20, то функция читает не более 19 символов, оставляя
место для автоматически добавляемого в конец нулевого символа. Функция-член
getline () прекращает чтение, когда достигает указанного предела количества
символов или когда читает символ новой строки — смотря, что произойдет раньше.
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
09.01.2014, 00:55  [ТС]     Ввод строки #10
У меня ещё остался вопрос.
Вот бесконечный цикл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <iomanip>
#include  <string.h>
using namespace std;
int main()
{   
    int cancel_program;
    do 
    {
    char mas[20];
    cin.getline(mas,20);
        int n=strlen(mas);
        cout<<  n << endl;
    cin >> cancel_program ; 
    }
    while(cancel_program!=0);
}
который закончится если введу ноль.
Но если я хочу пойти по новому кругу ,то оно почему-то пропускает ввод строки.
Почему?

Добавлено через 10 минут
Дык что,никто не знает где тут собака зарыта?Может указатель какой в начало строки поставить?
S_el
2089 / 1596 / 305
Регистрация: 15.12.2013
Сообщений: 6,418
09.01.2014, 01:03     Ввод строки #11
Цитата Сообщение от andryshka Посмотреть сообщение
Но если я хочу пойти по новому кругу ,то оно почему-то пропускает ввод строки.
Почему?
Хороший вопрос.
Если надо,чтобы использовалось многократно используй обычный cin.

C++
1
cin>>mas;
Добавлено через 2 минуты
Цитата Сообщение от andryshka Посмотреть сообщение
Может указатель какой в начало строки поставить?
В функцию и так передается char по ссылке.
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
09.01.2014, 01:06  [ТС]     Ввод строки #12
Цитата Сообщение от S_el Посмотреть сообщение
Если надо,чтобы использовалось многократно используй обычный cin.
Не подойдёт:cin ведь посимвольно вводит ,а мне до Enter а нужно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2014, 02:01     Ввод строки
Еще ссылки по теме:

Ввод строки - C++
Доброго времени суток форумчане. Вот возник вопрос: при вводе определенного текста мне нужно чтобы выдавало определенный результат, но...

Ввод строки до точки - C++
Требуется помощь с вводом строки до точки. Пишу вот так, но прога зацикливается и ввод продолжается до бесконечности. Помогите как это...

Ввод/вывод строки - C++
#include &lt;iostream&gt; using std::cin; using std::cout; using std::endl; #include &lt;string&gt; using std::strlen; using...

Ввод строки с пробелами - C++
Знающие, помогите решить такую проблему. Надо составить маленькую программку, представление аудио-коллекции, в общем дело не сложное ,...

Динамический ввод строки - C++
Напишите пожалуйста. Нужно чтобы из клавиатуры вводилась строка. Если строка больше 10 символов, всё остальное удаляется И заносится...


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

Или воспользуйтесь поиском по форуму:
dremer
8 / 8 / 0
Регистрация: 18.06.2012
Сообщений: 33
09.01.2014, 02:01     Ввод строки #13
andryshka,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <iomanip>
#include  <string.h>
using namespace std;
int main()
{   
    int cancel_program;
    do 
    {
    char mas[20];
    cin.getline(mas,20);
        int n=strlen(mas);
        cout<<  n << endl;
    cin >> cancel_program ;
    cin.get();
    }
    while(cancel_program!=0);
}
Yandex
Объявления
09.01.2014, 02:01     Ввод строки
Ответ Создать тему
Опции темы

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