Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Пропускается ввод строки через gets

Ответить
Настройки темы
C/C++ - Пропускается ввод строки через gets

Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


Проблема такая: при вызове функций Amnojestvo и Bmnojestvo в maine ввод строки через функцию gets пропускается. Никак не могу понять в чем дело. Возможно это как-то связано с выбором действий через enter.
PHP код: Выделить весь код

#include <stdio.h>

#include <stdlib.h>
#include <string.h>
#include <iostream>
void Menu()
{
    
printf(" Возможные действия:\n");
    
printf(" 1. Создать(изменить существующее) и заполнить множество А.\n");
    
printf(" 2. Создать(изменить существующее) и заполнить множество B.\n");
    
printf(" 3. Применить объединение (A и B).\n");
    
printf(" 4. Применить пересечение (A и B).\n");
    
printf(" 5. Применить разность (A и B).\n");
    
printf(" 6. Применить разность (B и A).\n");
    
printf(" 7. Применить симметричную разность (A и B).\n");
}
void TakeMenu(int &tmenu)
{
    
printf("\n Выберите номер действия: ");
    
scanf("%d", &tmenu);
}
void Amnojestvo(char Ainput[], int Adlinaint i)
{
    
printf(" Задайте элементы множества А :\n");
    
gets(Ainput);
    
Adlina=strlen(Ainput);
}
void Bmnojestvo(char Binput[], int Bdlinaint i)
{
    
printf(" Задайте элементы множества B :\n");
    
gets(Binput);
    
Bdlina=strlen(Binput);
}
int main()///////////////////////////////////////////////    MAIN
{
    
setlocaleLC_ALL,"Russian" );
    
    
int tmenun=100i;
    
int AdlinaBdlina;
    
int start=1;
    
char Ainput[n], Binput[n], temp[n];
    
    
Menu();
    while (
start)
    {
        
TakeMenu(tmenu);
        switch (
tmenu)
        {
            case 
1Amnojestvo(AinputAdlinai); break;
            case 
2Bmnojestvo(BinputBdlinai); break;
            default: 
printf(" Ошибка: такой команды не существует."); break;
        }    
    }
    
    
system("pause");



Отправлено: 14:15, 16-02-2016

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Во первых у вас void который значений не возвращает.
Переменные вы передаете как таковые (не через указатель), а значит изменения в процедуре "обратной силы" не имеют. Т.е. переменная ADlina будучи измененная в процедуре, в основной функции останется неизменной.
В данном случае я бы рекомендовал сделать процедуры не void, a int и через конструкцию return Adlina; возвращать нужное значение.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:12, 17-02-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Пропускается ввод строки через gets

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MySQL - [решено] ввод значений в строки justnub Программирование и базы данных 1 20-01-2016 21:17
Прочее - Ввод сетевого пароля - внешний жесткий диск через роутер? panas Сетевое оборудование 1 25-12-2015 15:56
VBS/WSH/JS - [решено] Ввод строки через форму Jeander Скриптовые языки администрирования Windows 16 07-04-2012 00:06
Ввод строки с клавиатуры DJ@XON Программирование в *nix 1 06-07-2009 22:25
Пропускается принятие соглашения на установке l1nker Автоматическая установка Windows 2000/XP/2003 9 01-08-2008 18:50




 
Переход