Новичок
Профиль
Группа: Участник
Сообщений: 21
Регистрация: 4.11.2015
Репутация: нет Всего: нет
|
Подсчитать кол-в чисел в текстовом файле Код | #include <stdio.h> #include <stdlib.h> #include <time.h> #include "logotip.c" #include <ctype.h> #include <string.h> #include <unistd.h> void time_stamp(FILE *f) { time_t t; t=time(NULL); fprintf(f,"=====%s=====\n",ctime(&t)); } int main(int argc,char* argv[]) { char a1,a2; char buffer[20],str_file[100]; char mass[100],ch,word[100]; char word_max[100]; //const char ch[200],mass[100]; int a,i,n1,b,count=0,state; int n; int j; FILE *filein,*fileout,*flog; logo(); printf("Краткое изложение задачи:\n"); printf("В текстовом файле найти самую длинную последовательность цифр\n"); printf("Выполнил Рожкин Павел Александрович,ИВТ-12\n"); sprintf(buffer,"%s.log",argv[0]); if((flog=fopen(buffer,"a"))==NULL) { puts("Ошибка открытия журнала"); puts("Нажмите Enter"); getchar(); exit(0); } time_stamp(flog); fprintf(flog,"Программа %s приступила к работе",argv[0]); if(argc<2) { time_stamp(flog); fprintf(flog,"Ошибка,недостаточно аргументов командной строки,работы завершена\n"); printf("Ошибка,используйте %s filename1 filename2\n",argv[0]); getchar(); fclose(flog); exit(0); } if((filein=fopen(argv[1],"r"))==NULL) { time_stamp(flog); fprintf(flog,"Невозможно открыть входной файл %s ,программа завершила работу",argv[1]); getchar(); fclose(flog); printf("Невозможно открыть файл %s,программа завершает работу\n",argv[1]); exit(0); } time_stamp(flog); fprintf(flog,"Файл %s открыт успешно",argv[1]); if((fileout=fopen(argv[2],"w"))==NULL) { time_stamp(flog); fprintf(flog,"Невозможно открыть файл %s ,программа завершила работу",argv[2]); printf("Невозможно открыть выходной файл %s,программа завершает работу\n",argv[2]); getchar(); fclose(flog); exit(0); } time_stamp(flog); fprintf(flog,"Файл %s открыт успешно",argv[2]); //printf("asdasdsad\n"); state=0; n=0; i=0; while(1) { ch=fgetc(filein); if(feof(filein)) break; if(state==0&&isdigit(ch)) { word[count]=ch; state=1; count++; n++; //fprintf(fileout,"%c",ch); continue; } if(state==0&&!isdigit(ch)) { //count=0; n=0; continue; } if(state==1&&!isdigit(ch)) { word[count]='\0'; state=0; if(i==0) {n1=n;i++;} if(n<n1&&n1!=n) { //printf("%c\n",word); //strcpy(word_max,word); } else { n1=n; strcpy(word_max,word); } count=0; n=0; } if(state==1&&isdigit(ch)) { word[count]=ch; count++; //fprintf(fileout,"%c",ch); n++; continue; } } fprintf(fileout,"Наибольшая последовательность цифр(она состоит из %d цифр ):%s",n1,word_max); printf("Наибольшая последовательность цифр(она состоит из %d цифр )%s\n",n1,word_max); fclose(filein); fclose(fileout); fprintf(flog,"Операция выполнена успешно,%s и %s успешно закрыты,программа завершила работу",argv[1],argv[2]); printf("Операция выполнена успешно,%s и %s успешно закрыты,программа завершает работу\n",argv[1],argv[2]); getchar(); fclose(flog); exit(0); }
|
|