Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2014, 23:42   #21
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Cкажите пожалуйста что в коде не то:
Код:
if ( r == mrYes )
            {
             ifstream f("records.txt");
             int pos=0;
             int tmp;
             if (f==NULL)
             {
             pos=1;
             Label2->Caption=IntToStr(pos);
             }
             else
             {
              while (false == f.eof())
               {
                f >> tmp;
                if (tmp < rec)
                pos++;
               }
               Label2->Caption=IntToStr(pos);
              }
               f.close();
             }
            else
            {
            Form1->Close();
            }
            ofstream f("records.txt",ios::app);
            f<<rec<<endl;
Чем меньше элемент у игрока тем выше место.
Уже столько вариантов перепробовал,что голова вообще не соображает.
spectrum988 вне форума Ответить с цитированием
Старый 24.04.2014, 00:32   #22
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

"Чем меньше элемент у игрока тем выше место." - это так нужно получить или так получилось?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 24.04.2014, 01:54   #23
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Мне нужно,чем меньше шагов(очков наберет )игрок тем выше он будет находиться в таблице рейтинга.

Последний раз редактировалось spectrum988; 24.04.2014 в 04:07.
spectrum988 вне форума Ответить с цитированием
Старый 24.04.2014, 08:50   #24
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Когда записей нету в файле программа показывает правильно,что игрок занимает 1 место,но после первого запуска,показывает что 3 а не 2.
spectrum988 вне форума Ответить с цитированием
Старый 24.04.2014, 16:01   #25
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Помогите пожалуйста разобраться до конца,столько вариантов уже перепробовал,что уже не соображаю.
Начало работает нормально,проверяю если файл пустой то вывожу,что первое место,иначе проверяю,пока файл не прочитан до конца,сравниваю элементы файла с набранными очками если набранные очки больше записанного элемента в файле добавляю единицу,этим самым и будет определена позиция.
Но не предусмотрен вариант если запись в файле больше набранных очков.
Как тогда вести подсчет ?
spectrum988 вне форума Ответить с цитированием
Старый 26.04.2014, 01:49   #26
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

А зачем предусматривать вариант, если число в файле больше набранных очков? Ведь этот результат не влияет на текущее место игрока, так как является более плохим.

А так?
Код:
if (r == mrYes) {
    ifstream f("records.txt");
    int pos = 1, tmp;
    if (f)
        while (f >> tmp)
            if (tmp < rec)
                ++pos;
    Label2->Caption = IntToStr(pos);
    f.close();
} else
    Form1->Close();
ofstream f("records.txt", ios::app);
f << rec << std::endl;
f.close();
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 28.04.2014, 01:10   #27
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Спасибо большое BDA,ваш код работает,но я не понимаю значение такой записи условного оператора if (f),объясните пожалуйста,что эта запись значит ?
spectrum988 вне форума Ответить с цитированием
Старый 28.04.2014, 04:40   #28
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

если f не равно нулю

смотри для fstream перегруженный оператор сравнения
rrrFer вне форума Ответить с цитированием
Старый 28.04.2014, 20:12   #29
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

А как это можно по другому оформить ?
spectrum988 вне форума Ответить с цитированием
Старый 28.04.2014, 20:15   #30
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
spectrum988
Код:
if (0 != f)
Так что-ли?
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами Eugene_Stoun Общие вопросы Delphi 3 05.07.2013 10:00
работа с файлами Funy Помощь студентам 0 16.01.2012 15:44
Работа с файлами kop Общие вопросы C/C++ 3 30.05.2011 20:07
работа с файлами Luxoff Паскаль, Turbo Pascal, PascalABC.NET 3 09.03.2011 21:04