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

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

Войти
Регистрация
Восстановить пароль
 
Xfaider
11 / 11 / 1
Регистрация: 27.10.2012
Сообщений: 26
#1

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

27.10.2012, 13:37. Просмотров 284. Ответов 2
Метки нет (Все метки)

Здравствуйте . У меня вот образовалась такая проблема: решал несколько задач различных на одну тему, решил написать одну программу, в которой будет решение всех задач. То есть будет выбор задачи в начале и потом ее решение. Вот начало:
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++):

Не записывается массив в переменную - C++
Не записывается массив в переменную при считывании новой i, то есть была у нас i = 1, и перешла на i = 2, и все значения из DATA...

Число не записывается в переменную - C++
int main() {int a,b; cout&lt;&lt;&quot;Enter a &quot;&lt;&lt;endl; cin&gt;&gt;a; while(a/10&gt;1) { b=a-10;} cout&lt;&lt;b&lt;&lt;endl; ...

Не записывается текущая директория в переменную - C++
Отладка почему то не работает. В переменных вместо ожидаемых значения какие то крякозябры. Каждый раз разные. Случайные участки ОЗУ...

В переменную массива записывается не то значение - C++
Вобщем задача такая : есть массив N чисел из него надо удалить повторяющиеся числа. Я написал такую функцию: void T(int* M,int N){ ...

НЕ записывается содержимое файла в переменную типа char - C++
Нужно открыть файл, сохранить содержимое текста файла в переменную типа char под названием buffer и вывести переменную buffer на экран. При...

В переменную типа string записывается только первое слово строки - C++
Как вписывать предложения в тип string (если возможно)? То есть скажем после string randomstr; cin &gt;&gt; randomstr; // вводим например...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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" после этого и начинается запуск.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2012, 15:30
Привет! Вот еще темы с ответами:

Каким образом в переменную записывается результат каждого рекурсивного вызова? - C++
Всем привет! Подскажите по данной задачи, немного недопонимаю: ФАКТОРИАЛ: int FACT(int n) {int res; if(n==1) return 1; ...

При вводе в переменную через scanf число 0.5 записывается как 0 - C++
Всем привет, столкнулся с такой проблемой: В универе надо простенькую задачку написать на С... Ввожу в х число 0.5, а в х в итоге лежит...

Записать день в переменную d,месяц в переменную m, год в переменную y - C++
Как можно получить системную дату? Мне надо записать день в переменную d,месяц в переменную m, год в переменную y Заранее Спасибо!

Процедура, записывающая в переменную X минимальное из значений X и Y, а в переменную Y – максимальное - C++
Описать процедуру Minmax(X, Y), записывающую в переменную X минимальное из значений X и Y, а в переменную Y – максимальное из этих значений...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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