All pastes #512588 Raw Edit

Anonymous

public text v1 · immutable
#512588 ·published 2007-05-26 23:28 UTC
rendered paste body
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int write_file(const char *text, const char *file);
int main()
{
   FILE *fin;
   int i, ch, end = 0, length = 0;
   const char *end_str = "END";
   char filename[25] = {0}, *p;
   
   if ((fin = fopen("temp.log", "w+")) == NULL) {
      printf("Error opening file\n");
      return 1;
   }
   while ((ch = getchar()) != EOF) {
      if (ch != 'E' && ch != 'N' && ch != 'D') {
         for (i = 0; i < end; i++) fputc(end_str[i], fin);
         end = 0;
         length++;
         fputc(ch, fin);         
         if (ch == '.' || ch == '!' || ch == '?') {
            fputc('\n', fin);
            length++;
         }
      } else {
         if (!end && (ch == 'N' || ch == 'D')) {
            fputc(ch, fin);
            length++;
         } else {
            if (end_str[end] == ch) {
               end++;
               if (end == 3) break;
            }
         }
      }
   }
   i = 0;
   p = (char *) malloc(length);
   rewind(fin);
   while ((ch = fgetc(fin)) != EOF) p[i++] = ch;
   p[length] = 0x00;
   fclose(fin);
   getchar();
   printf("Filename: ");
   fgets(filename, sizeof(filename), stdin);
   if (write_file(p, filename)) {
      printf("Error\n");
   } else {
      printf("Sucessfull!\n");
   }
   getche();
   free(p);
   return 0;
}
int write_file(const char *text, const char *file)
{
   FILE *fin;
   if ((fin = fopen(file, "w")) == NULL)
      return 1;
   if (fwrite(text, 1, strlen(text), fin) < strlen(text)) {
      fclose(fin);
      return 1;
   }
   fclose(fin);
   return 0;
}