![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Не могу найти ошибку в функции |
|
C/C++ - Не могу найти ошибку в функции
|
Новый участник Сообщения: 2 |
Задание: Запись имеет вид: название вуза, число студентов, количество факультетов. Добавить в конце файла информацию о трех новых вузах и посчитать общее число студентов.
Все написал, функция расчета общего числа не работает, не могу найти ошибку. Может кто подскажет что не правильно делаю. #include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> #include<locale.h> struct tov {char name[10];float c;int sum;} t1; void input(FILE *);//создание нового файла void print(FILE *);//просмотр файла void app(FILE *);//добавление в файл void kolich(FILE *);//подсчет общего количество студентов main() {setlocale(LC_CTYPE,"Russian"); char c; FILE *tf; while (1) {system("CLS"); puts("1 - Создание нового файла"); puts("2 - Просмотр файла"); puts("3 - Добавление в файл"); puts("4 - Количество студентов"); puts("0 - Выход"); c=getch(); switch(c) {case '1':input(tf);break; case '2':print(tf);break; case '3':app(tf);break; case '4':kolich(tf);break; case '0':return 0; default:puts("Неверный режим"); } } } void input(FILE *tf) {char ch; tf=fopen("file1.dat","wb");//открытие бинарного файла для записи system("CLS"); printf("\n Ввод информации о вузе\n"); do {printf("\n Название вуза: "); scanf("%s",&t1.name); printf(" Число студентов: "); scanf("%f",&t1.c); printf(" Количество факультетов: "); scanf("%d",&t1.sum); fwrite(&t1,sizeof(t1),1,tf);//запись в файл одной строкой t1 printf("\n Закончить? y/n "); ch=getch(); } while(ch != 'y'); fclose(tf); } void print(FILE *tf) {int i; system("CLS"); tf=fopen("file1.dat","rb");//открытие бинарного файла для чтения i=1; fread(&t1,sizeof(t1),1,tf);//чтение из файла одной структуры t1 while(!feof(tf)) {printf("\n %1d Вуз: %1s | Количество студентов: %1.0f | Количество факультетов: %1d",i,t1.name,t1.c,t1.sum); fread(&t1,sizeof(t1),1,tf); i++; } getch(); } void app(FILE *tf) {char ch; tf=fopen("file1.dat","ab");//открытие бинарного файла для добавления system("CLS"); printf("\n Название вуза \n"); do {printf("\n Название: "); scanf("%s",&t1.name); printf(" Число студентов: "); scanf("%f",&t1.c); printf(" Количество студентов: "); scanf("%d",&t1.sum); fwrite(&t1,sizeof(t1),1,tf); printf(" Закончить? y/n "); ch=getch(); } while(ch != 'y'); fclose(tf); } void kolich(FILE *tf) { int sum; tf=fopen("file1.dat","rb"); sum=1; fread(&t1,sizeof(t1),1,tf); while (!feof(tf)) { sum++; } printf("Количество:",sum); getch(); fclose(tf); } |
|
Отправлено: 20:07, 09-12-2013 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать дык у тебя её зациклить должно пока компу не надоест. Смотри внимательно, что в цикле написал. Пройдись отладчиком
|
Отправлено: 21:22, 09-12-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - [решено] Неправильно работает код. Не могу найти ошибку. | bangybam | Программирование и базы данных | 9 | 30-10-2012 15:36 | |
CMD/BAT - [решено] самодельный таймер - не могу найти ошибку в коде | элькхар | Скриптовые языки администрирования Windows | 4 | 24-10-2012 22:37 | |
CMD/BAT - Не могу найти ошибку | Dremuk | Скриптовые языки администрирования Windows | 1 | 28-01-2010 15:35 | |
Разное - Обработка массивов данных, программа на паскале. Не могу найти ошибку в программе | yulia_hoi | Программирование и базы данных | 6 | 08-01-2010 14:50 | |
JavaScript, не могу найти ошибку | modem | Вебмастеру | 3 | 01-03-2005 15:08 |
|