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