Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Как переделать кодпод задачу?


Автор: username12 17.12.2015, 19:38
Подсчитать кол-в чисел в текстовом файле
Код

#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);
 
 
}

Автор: Alexeis 17.12.2015, 19:45
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)