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

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

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

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

13.02.2013, 02:35. Просмотров 306. Ответов 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;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2013, 02:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнение строки через функцию (C++):

Заполнение структуры через функцию - C++
Здравствуйте помогите пжл, нужно реализовать заполнение структуры через функцию в этой проге #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Удаление из строки повторяющихся элементов (через функцию) - C++
Добрый день! #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; //Удаление повторяющихся элементов в алфавите ...

Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN() - C++
а помогите теперь эту задачку #include &lt;iostream&gt; int main() { int last = 0, next = 1; long sum = 1; for(;...

Перевернуть все нечетные строки динамической матрицы через функцию - C++
Как правильно описать двумерный массив в main? Так-то программа работает, но после разделения на функции, появились ошибочки) int *...

заполнение массива через rand и вывод на экран через указатели - C++
Учитель задал заполнить массивы и случайными числами и вывезти на экран через указатели, через функцию rand выводит как вы понимаете одни...

Написание програмы по теме "строки" через функцию - C++
Нужно вывести строку символов. Определить количество одинаковых двухбуквенных сочетаний. Вывести на экран результат паботы. Применить это...

3
alexcoder
1465 / 679 / 89
Регистрация: 03.06.2009
Сообщений: 3,589
Завершенные тесты: 1
13.02.2013, 10:01 #2
Топорный способ: перед cin.getline или gets добавьте fflush(stdin);
Это происходит потому что cin >> key; не забирает последний символ перевода строки их входного потока, этот перевод хватает cin.getline как пустую строку.
1
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
13.02.2013, 10:09 #3
fflush - для С. Для cin - ignore
2
19n1ght
2 / 2 / 0
Регистрация: 13.02.2013
Сообщений: 15
13.02.2013, 13:42  [ТС] #4
Спасибо, помогло!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2013, 13:42
Привет! Вот еще темы с ответами:

Сделать задачу через функцию (добавить функцию) - C++
#pragma hdrstop #pragma argsused #include &lt;tchar.h&gt; #include &lt;iostream.h&gt; int _tmain(int argc, _TCHAR* argv) { int...

Вынести в отдельную функцию заполнение массива - C++
Здравствуйте,у меня не работает программа,я попытался запихнуть в отдельную функцию заполнение случайного массива,но выводит ошибки код: ...

Степень вывести через указатель,a десятичный логарифм через функцию рекуренционную - C++
Написать функции,где 3 натуральных числа a,b,c(a/b-десятичный логарифм).Чтобы степень вывести через указатель,a десятичный логарифм через...

Быстрее ли вывов функции, переданной через параметр шаблона, чем через простой указатель на функцию? - C++
Здравствуйте! Есть два варианта передачи некоторой переменной типа &quot;указатель на функцию&quot; в класс - через параметр шаблона и просто с...


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

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

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