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

Как ограничить длину вводимой строки? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сфоpмиpовать массив из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки (BorlandC++) http://www.cyberforum.ru/cpp-beginners/thread1692033.html
Как сделать задание "Дан массив А pазмеpом m*n. Сфоpмиpовать массив NS из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки. " У меня есть подобный код : #include<stdio.h> #include<conio.h> void main() { const N=2,M=3; /*размерность масcива А*/ static int A; int B,C; /*описание масcивов А,В,С*/ int MAX ; int I,J;
C++ Создать каталог организаций города и отсортировать по названию Создать каталог организаций города (динамический массив) и отсортировать по названию ( friend - функция). Помогите пожалуйста #include <iostream> #include <conio.h> #include <stdio.h> using namespace std; class organization { http://www.cyberforum.ru/cpp-beginners/thread1692028.html
Даны два массива. Сформируйте массив С, состоящий из общих элементов массива А и В C++
Даны два массива: массив А из n элементов и массив В из m элементов. Сформируйте массив С, состоящий из общих элементов массива А и В. Для формирования массива С напишите функцию с использованием указателей.
C++ Из элементов массива расположенных между первым нулевым и максимальным сформировать новый массив
Из элементов массива А из n элементов, расположенных между первым нулевым и максимальным (в предположении, что в массиве есть положительные числа) (или максимальным и первым нулевым), сформировать новый массив. Для формирования массива С напишите функцию с использованием указателей.
C++ Из отрицательных элементов массива, сформировать новый массив http://www.cyberforum.ru/cpp-beginners/thread1691989.html
Из отрицательных элементов массива массив X из n элементов, расположенных левее минимального элемента, сформировать новый массив. Для формирования массива С напишите функцию с использованием указателей. (работу с указателями)
C++ В двухмерном массиве, рассчитать сумму и произведение значений элементов произвольной строки двумерного массив Ввести двумерный массив размерностью 5х6(обычный не динамический и работа с ним без использования указателей). Рассчитать в одной функции сумму и произведение значений элементов произвольной строки двумерного массива. Ввод массива и исходных данных выполнить(номера строки) в функции ввода, вывод массива и результатов – в функции вывода. /должно быть 3 функции - ввод данных,... подробнее

Показать сообщение отдельно
BMT_Victor
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 7
22.03.2016, 20:39     Как ограничить длину вводимой строки?
Короче, есть задачка:
Напишите программу на "родном" С++, которая читает с клавиатуры число (целое) и имя (до 15 символов). Спроектируйте программу так, чтобы данные вводились в одной функции, а выводились в другой. Сохраняйте данные в главной программе. Программа должна завершаться, когда пользователь введет число 0. Подумайте о том, как передавать данные между функциями - по значению, по указателю или по ссылке.
Вот, я придумал решение:

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <iomanip>
 
using std::cin;
using std::cout;
using std::setw;
 
void input(int& num_rec, char* name_rec);
void output(int num_to_out, char* name_to_out);
 
const int len = 16;
 
int main(void)
{
    char* name = "0123456789012345";        // Инициализация строки
                                            // на 15 символов плюс \0.
                                            // В этой строке хранится имя
    
    int num(0);                             // Здесь хранится число 
 
    for (;;)
    {
        input(num, name);
 
        if (0 == num)   return 0;       // Выход из бесконечного цикла
 
        output(num, name);
    }
 
    return 0;
}
 
// Функция для ввода данных
void input(int& num_rec, char* name_rec)
{
    cout << "\nEnter a number (0 to end): ";
    cin >> num_rec;
 
    if (0 == num_rec)
        return;
    
 
    cout << "\nEnter a name: ";
    cin.getline(name_rec, len, '\n');
 
    return;
}
 
// Функция для вывода данных
void output(int num_to_out, char* name_to_out)
{
    cout << "\n\n" << setw(10) << "#" << num_to_out
        << "\n" << setw(10) << name_to_out;
 
    return;
}
Он чё-то вылетает на строке, где cin.getline().

http://www.cyberforum.ru/attachment....1&d=1458668132

Что жи не так???
Миниатюры
Как ограничить длину вводимой строки?  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru