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

В переменную записывается пустота - C++

Восстановить пароль Регистрация
 
Xfaider
11 / 11 / 1
Регистрация: 27.10.2012
Сообщений: 26
27.10.2012, 13:37     В переменную записывается пустота #1
Здравствуйте . У меня вот образовалась такая проблема: решал несколько задач различных на одну тему, решил написать одну программу, в которой будет решение всех задач. То есть будет выбор задачи в начале и потом ее решение. Вот начало:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void main(void)
{
    int n; char d,b;bool a=true;
    setlocale(LC_ALL, "rus");
    task1 t1;task2 t2; task3 t3;
    std::cout <<"Программа содержит решения задач темы 6: Строки"<<std::endl;
    Sleep(2000);
    while (a==true)
    {
    system("cls");
    std::cout <<"В наличии задачи 6,17,28"<<std::endl;
    std::cout <<"Введите номер задачи которую хотите увидеть"<<std::endl;
    std::cin >>n;
    switch (n)
    {
    case 6:
        std::cout <<"Здесь написаны условия"<<std::endl;
        std::cout <<""<<std::endl;
        std::cout <<"Приступить к решению? (y/n)"<<std::endl;
        std::cin >>d;
        if (d=='y') {system("cls"); t1.main(); break;}
        else break;
Дальше идут case такого же типа. t1.main это основное тело нужной программы,реализовал через класс, на будущее, вдруг будут совпадать имена функций, вот начало:
C++
1
2
3
4
5
6
7
8
9
void main(void)
{
   setlocale (LC_ALL, "rus");
   int l;char m1[255],m2[255]; 
   std::cout <<"Программа найдет, сколько раз строка 2 содержится в строке 1"<< std::endl;
   std::cout <<"Введите строку 1(пробелы так же учитываются)"<< std::endl;
   std::cin.getline(m1,255); //берем строку 1
   std::cout <<"Введите строку 2(пробелы так же учитываются)"<< std::endl;
   std::cin.getline(m2,255); //берем строку 2
Тут и возникает проблема, каким то образом в потоке остается пустота, то есть выдает
C++
1
2
3
Программа найдет, сколько раз строка 2 содержится в строке 1
Введите строку 1(пробелы так же учитываются)
Введите строку 2(пробелы так же учитываются)
И в переменную m1 записывается пустота. Вопрос - откуда вообще она берется? Не понимаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2012, 13:37     В переменную записывается пустота
Посмотрите здесь:

C++ НЕ записывается содержимое файла в переменную типа char
При вводе в переменную через scanf число 0.5 записывается как 0 C++
Каким образом в переменную записывается результат каждого рекурсивного вызова? C++
C++ В переменную массива записывается не то значение
C++ Не записывается массив в переменную
Число не записывается в переменную C++
Не записывается текущая директория в переменную C++
C++ Процедура, записывающая в переменную X минимальное из значений X и Y, а в переменную Y – максимальное

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
27.10.2012, 14:48     В переменную записывается пустота #2
Xfaider, возможно в m1 попадает символ перевода строки. Вы же до этого что-то вводили уже с клавиатуры и жали энтер?
Xfaider
11 / 11 / 1
Регистрация: 27.10.2012
Сообщений: 26
27.10.2012, 15:30  [ТС]     В переменную записывается пустота #3
Цитата Сообщение от I.M. Посмотреть сообщение
Xfaider, возможно в m1 попадает символ перевода строки. Вы же до этого что-то вводили уже с клавиатуры и жали энтер?
Сначала ввожу номер задания, а потом символ "y" после этого и начинается запуск.
Yandex
Объявления
27.10.2012, 15:30     В переменную записывается пустота
Ответ Создать тему
Опции темы

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