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

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

Войти
Регистрация
Восстановить пароль
 
19n1ght
2 / 2 / 0
Регистрация: 13.02.2013
Сообщений: 15
#1

Заполнение строки через функцию - C++

13.02.2013, 02:35. Просмотров 293. Ответов 3
Метки нет (Все метки)

Добрый день!

При вызове функции f1 оператор cin.getline не срабатывает. На экране отображается одна пустая строка (следствие функции puts), после чего программа завершает работу. При использовании gets вместо cin.getline происходит тоже самое.
Во второй функции f2 оператор cin срабатывает, но он не позволяет записать в массив string2 более одного слова. Это не подходит.

Как мне сделать так, чтобы по вызову функции из void main'а я мог ввести несколько слов в строку?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#define size 30
using namespace std;
 
#include <iostream>
#define size 30
using namespace std;
 
void f1 () {
    char string1[size];
    cin.getline (string1, size);
    puts (string1);
}
void f2 () {
    char string2[size];
    cin >> string2;
    puts (string2);
}
void main () {
    int key;
    cin >> key;
 
    switch (key) {
    case 1: f1(); break;
    case 2: f2(); break;
    default: break;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2013, 02:35     Заполнение строки через функцию
Посмотрите здесь:

C++ Заполнение структуры через rand
Заполнение структуры через функцию C++
Степень вывести через указатель,a десятичный логарифм через функцию рекуренционную C++
C++ неверное заполнение матрицы через rand
C++ Удаление из строки повторяющихся элементов (через функцию)
C++ Заполнение матрицы через рандом.
Заполнение динамического массива через указатели C++
Быстрее ли вывов функции, переданной через параметр шаблона, чем через простой указатель на функцию? C++
Вынести в отдельную функцию заполнение массива C++
Перевернуть все нечетные строки динамической матрицы через функцию C++
C++ Написание програмы по теме "строки" через функцию
C++ Вектор объектов, заполнение через Set

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1444 / 658 / 87
Регистрация: 03.06.2009
Сообщений: 3,377
Завершенные тесты: 1
13.02.2013, 10:01     Заполнение строки через функцию #2
Топорный способ: перед cin.getline или gets добавьте fflush(stdin);
Это происходит потому что cin >> key; не забирает последний символ перевода строки их входного потока, этот перевод хватает cin.getline как пустую строку.
Vourhey
Почетный модератор
6471 / 2246 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
13.02.2013, 10:09     Заполнение строки через функцию #3
fflush - для С. Для cin - ignore
19n1ght
2 / 2 / 0
Регистрация: 13.02.2013
Сообщений: 15
13.02.2013, 13:42  [ТС]     Заполнение строки через функцию #4
Спасибо, помогло!
Yandex
Объявления
13.02.2013, 13:42     Заполнение строки через функцию
Ответ Создать тему
Опции темы

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