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

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

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

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

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

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

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

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

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

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

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

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

12
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,579
09.01.2014, 00:20 #2
Как вариант:

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

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

Добавлено через 1 минуту
Цитата Сообщение от andryshka Посмотреть сообщение
объясните пожалуйста эту строку.Зачем ещё раз 20 писать если мы объявили уже массив в 20 элементов?И что за принцип работы функции cin.getline?
ответ:
Функция getline () читает целую строку, используя символ новой строки,
который передан клавишей <Enter>, для обозначения конца ввода. Этот метод
инициируется вызовом функции cin.getline(). Функция принимает два аргумента. Первый
аргумент — это имя места назначения (т.е. массива, который сохраняет введенную
строку), а второй — максимальное количество символов, подлежащих чтению. Если,
скажем, установлен предел 20, то функция читает не более 19 символов, оставляя
место для автоматически добавляемого в конец нулевого символа. Функция-член
getline () прекращает чтение, когда достигает указанного предела количества
символов или когда читает символ новой строки — смотря, что произойдет раньше.
1
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 минут
Дык что,никто не знает где тут собака зарыта?Может указатель какой в начало строки поставить?
0
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,579
09.01.2014, 01:03 #11
Цитата Сообщение от andryshka Посмотреть сообщение
Но если я хочу пойти по новому кругу ,то оно почему-то пропускает ввод строки.
Почему?
Хороший вопрос.
Если надо,чтобы использовалось многократно используй обычный cin.

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

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

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

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

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


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

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

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