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

Инкремент переменной - C++

Восстановить пароль Регистрация
 
mihail07
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 3
08.09.2013, 14:38     Инкремент переменной #1
в задании сказано, что пользователь вводит строку и программа выводит ее, но если пользователь вводит еще и цифру, то программа должна вывести строку столько раз, сколько раз была эта программа вызвана до этого, задача со встроенными функциями. моя программа не выводит ничего из встроенной функции. ПОМОГИТЕ !

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
#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
inline int Counter(string StRiNg) { 
    static int x = 0;
    while (x != 0) {
        cout << "You write: " << StRiNg << "!!! " << endl;
        x--;}
    
    return x++; }
 
 
int main()
{
    string STRING;
    int SECOND_ARGUMENT = 0;
    int X = 0;
 
    cout << "Enter one string or string and number: " << endl;
    cin >> STRING >> SECOND_ARGUMENT;
 
    if (SECOND_ARGUMENT == 0)
    { cout << " You write: " << STRING << endl;}
    else {Counter (STRING);}
    Counter;
    getch();
 
 
    return X++;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
08.09.2013, 15:22     Инкремент переменной #2
Почему бы не сделать getline и только потом посмотреть, не была ли введена цифра?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2013, 16:09     Инкремент переменной #3
Цитата Сообщение от mihail07 Посмотреть сообщение
пользователь вводит строку и программа выводит ее, но если пользователь вводит еще и цифру
Вот это "ещё", вы как себе представляете? Один ввод или два? Если один, то как понимать "ещё"? Если два, то в первом случае: что вводится при втором вводе?
mihail07
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 3
08.09.2013, 16:20  [ТС]     Инкремент переменной #4
Цитата Сообщение от BuGi Посмотреть сообщение
Почему бы не сделать getline и только потом посмотреть, не была ли введена цифра?
я не работал еще с getline, поэтому и не использовал ее))

Добавлено через 8 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Вот это "ещё", вы как себе представляете? Один ввод или два? Если один, то как понимать "ещё"? Если два, то в первом случае, что вводится при втором вводе?
вот полностью текст задания:

Напишите функцию, которая обычно принимает один аргумент - адрес строки и выводит эту строку один раз. однако, если задан второй аргумент типа int, не равный нулю, то эта функция выводит строку столько раз, сколько было осуществлено вызовов этой функции к моменту ее данного вызова. напишите простую программу для демонстрации этой функции.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2013, 16:39     Инкремент переменной #5
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
#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
inline void Counter(string StRiNg,  int SECOND_ARGUMENT = 0) 
{ 
    static int x = 0;
    if (SECOND_ARGUMENT == 0)
    {
        cout << StRiNg << endl;
        ++x;
        return;
    }
    while (x != 0) 
    {
        cout << "You write: " << StRiNg << "!!! " << endl;
        x--;
    }
}
 
 
int main()
{
    string STRING;
    for (int i = 0; i < 3; ++i)
    {
        cout << "Enter string: " << endl;
        cin >> STRING;
        Counter(STRING);
    }
    cout << "Enter string: " << endl;
    cin >> STRING;
    Counter(STRING, 1);
 
    getch();
    return 0;
}
mihail07
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 3
08.09.2013, 22:05  [ТС]     Инкремент переменной #6
alsav22, спасибо за код, но насколько я понимаю, то х должен увеличиваться при запуске программы, а не в прохождении через цикл, меня интересует как можно сохранить значение х до следующего запуска программы, так как х после завершения программы х снова становится 0!
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
08.09.2013, 22:21     Инкремент переменной #7
Ты можешь использовать реестр или .ini файлы, но зачем? У тебя ничего об этом в задании не сказано. Да и две переменные нужно, ведь если запустить несколько раз у нулем, а потом с числом -- выведет все правильно, но если еще раз с ненулевым числом, то ничего не выведет, т.к. х==0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2013, 00:55     Инкремент переменной
Еще ссылки по теме:

Инкремент указателей и как обратиться к "промежуточному" адресу переменной C++
Некоректный инкремент переменной цикла for при сравнении элементов массива C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.09.2013, 00:55     Инкремент переменной #8
Цитата Сообщение от mihail07 Посмотреть сообщение
но насколько я понимаю, то х должен увеличиваться при запуске программы,
Где в задании о запусках программы что-либо сказано.?
Цитата Сообщение от mihail07 Посмотреть сообщение
то эта функция выводит строку столько раз, сколько было осуществлено вызовов этой функции к моменту ее данного вызова.
Зато это было в вашей интерпретации задания, в первом посте:
Цитата Сообщение от mihail07 Посмотреть сообщение
программа должна вывести строку столько раз, сколько раз была эта программа вызвана до этого
Добавлено через 3 минуты
Мой код (вернее, ваш переделанный) под задание, а не под вашу интерпретацию. Чтобы сделать под неё, ответьте на вопросы в 3 посте.
Yandex
Объявления
09.09.2013, 00:55     Инкремент переменной
Ответ Создать тему
Опции темы

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