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

Вывести список команд,набравших более Z очков - C++

Восстановить пароль Регистрация
 
Mercial
0 / 0 / 0
Регистрация: 09.04.2011
Сообщений: 6
14.06.2012, 06:17     Вывести список команд,набравших более Z очков #1
Вывести список команд,набравших более Z очков. Мой пример проверьте плз и подскажите что исправить.Нет вывода.Уверен что ошибка в
C++
1
2
if (as<=r.koloch) 
printf ("\n\t%10s \t%6.2d  \t\t%5d ",r.naz, r.koligr,as);


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void zad1()
{clrscr();
int as;
 FILE *fp;
 fp=fopen("spisok","r");
 printf ("\n Введите очки: ");
 scanf ("%d",as);
 while ((fp=fopen ("spisok","r"))==NULL)
{puts (" \n Не удалось открыть файл \n ");
 return;
}
 
while (fread(&r,sizeof(r),1,fp)==1)
{ if (as<=r.koloch)
printf ("\n\t%10s \t%6.2d  \t\t%5d ",r.naz, r.koligr,as);
}
getch();
 
fclose(fp);
printf ("\n\n\n\n\n\n\t Для возврата в главное меню нажмите любую клавишу...");
getch();
menu6();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FireOwl
 Аватар для FireOwl
62 / 44 / 5
Регистрация: 01.07.2009
Сообщений: 145
14.06.2012, 06:37     Вывести список команд,набравших более Z очков #2
А разве для работы с fread не требуется читать файл в двоичном (не преобразуемом) виде?
Я имею ввиду:
C++
1
fp=fopen("spisok.txt","rb");
И создавать его перед этим так же, не вручную.
Mercial
0 / 0 / 0
Регистрация: 09.04.2011
Сообщений: 6
14.06.2012, 06:58  [ТС]     Вывести список команд,набравших более Z очков #3
Цитата Сообщение от FireOwl Посмотреть сообщение
А разве для работы с fread не требуется читать файл в двоичном (не преобразуемом) виде?
Я имею ввиду:
C++
1
fp=fopen("spisok.txt","rb");
И создавать его перед этим так же, не вручную.
Не совсем понял.Это фрагмент программы.Одно из заданий вывести список команд,набравших более Z очков,и этот фрагмент привёл.
FireOwl
 Аватар для FireOwl
62 / 44 / 5
Регистрация: 01.07.2009
Сообщений: 145
14.06.2012, 16:55     Вывести список команд,набравших более Z очков #4
Вы читаете файл таблицы как "r". Это обычное чтение файла, которое приводит его к текстовому виду.

Команды fread и fwrite - двоичные команды. Они требуют, насколько я знаю, чтобы файл с которым происходит работа записывался и читался как "rb" или "wb". То есть - в двоичном виде. Не в текстовом. Иначе данные покорежатся и вывода не будет, т.к. нифига не считалось.

Как-то так.
Yandex
Объявления
14.06.2012, 16:55     Вывести список команд,набравших более Z очков
Ответ Создать тему
Опции темы

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