Новинка
-37%
Вопрос
Каким образом необходимо выполнить открытие файла для того, чтобы для каждого запуска программы сохранялся отдельный файл лога, содержащий описание всех действий, выполненных в программе (при условии, что программа запускается не более одного раза в минуту)?#include
#include #include #include void AddToLog(FILE*, char*);char* GenerateFileName();int main (void) { FILE *fp; char *strFile, strFn[30] = ""; double (*pFunc) (double); int c = 1; double y; strFile = GenerateFileName(); strcpy(strFn, strFile); <Открытие файла> while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tann"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; AddToLog(fp, "Пользователь выбрал функцию 1 (вычисление квадратного корня)n"); break; case 2: pFunc = sin; AddToLog(fp, "Пользователь выбрал функцию 2 (вычисление синуса)n"); break; case 3: pFunc = tan; AddToLog(fp, "Пользователь выбрал функцию 3 (вычисление тангенса)n"); break; case 0: AddToLog(fp, "Пользователь завершил выбор функцииnn"); printf("Лог сохранен в файл %sn", strFn); return; default: AddToLog(fp, "Пользователь задал неверный номер функцииnn"); continue; } y = pFunc(1.1); AddToLog(fp, "Вычислено значение выбранной функцииn"); printf("f(1.1) = %.2fn", y); AddToLog(fp, "Результат вычисления выведен на экранn"); } if (fp != NULL) fclose(fp); return 0;}void AddToLog(FILE *fp, char *str){ if (fp != NULL) fputs(str, fp);}char* GenerateFileName(){ char strTime[10] = ""; char strDate[10] = ""; char strFile[30] = "g:log_"; char *token; _strdate(strDate); _strtime(strTime); token = strtok(strDate, "/"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,"_",1); token = strtok(strTime, ":"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,".txt",4);}- if( (fp = fopen(strFileName, "w+t")) == NULL ) printf( "Problem opening the filen" );
- if( (fp = fopen(strFn, "w+t")) == NULL ) printf( "Problem opening the filen" );
- if( (fp = fopen(strFileName, "a")) == NULL ) printf( "Problem opening the filen" );
- if( (fp = fopen(strFileName, "r+")) == NULL ) printf( "Problem opening the filen" );
Ответ
![Картинка-подпись]()
Гарантия сдачи без лишних хлопот! ✅🎓 Ответы на тесты по любым дисциплинам, базы вопросов, работы и услуги для Синергии, МЭИ и других вузов – всё уже готово! 🚀 🎯📚 Гарантия качества – или возврат денег! 💰✅