Из файла А в файл В переписать текст в обратном порядке - C (СИ)
Формулировка задачи:
Посмотрите мой код
Задача, из файла А в файл В переписать в обратном порядке
Если в А
Только вот пустые строки пропускает.
Как в файл записать пустую строку?
Задача, из файла А в файл В переписать в обратном порядке
aa bbb c
#include "stdafx.h"
#include <stdio.h>
void rec (FILE *, FILE *);
int _tmain(int argc, _TCHAR* argv[])
{
FILE *A;
FILE *B;
B = fopen ("I:\\B.txt", "w");
if ( ( A = fopen("I:\\A.txt" , "r")) != NULL)
rec (A,B);
else
printf ("File A net");
return 0;
}
void rec (FILE *A, FILE *B)
{
static int i;
char s[10000];
if (!feof(A))
{
fgets (s,10000,A);
rec (A,B);
}
if (i==1)
fputs (s,B);
i=1;
}
Помогите!!!
Решение задачи: «Из файла А в файл В переписать текст в обратном порядке»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct NODE {
char * str;
struct NODE * next;
} node_t;
int push(node_t ** stack, const char * str){
node_t * n;
if ( ! ( n = malloc(sizeof(node_t)) ) )
return -1;
if ( ! ( n->str = strdup(str) ) )
return -1;
n->next = *stack;
*stack = n;
return 0;
}
int pop(node_t ** stack, char * buf){
node_t * n = *stack;
if ( ! n )
return -1;
strcpy(buf, n->str);
*stack = n->next;
free(n);
return 0;
}
#define IN_FILE "in.txt"
#define OUT_FILE "out.txt"
int main(void){
char buf[BUFSIZ];
node_t * stack;
FILE * f;
if ( ! ( f = fopen(IN_FILE, "r") ) ){
fprintf(stderr, "Can't open file %s for input!\n", IN_FILE);
exit(1);
}
stack = NULL;
while ( fgets(buf, BUFSIZ, f) ){
if ( push(&stack, buf) ){
fprintf(stderr, "Memory error!\n");
exit(1);
}
}
if ( ferror(f) || fclose(f) ){
fprintf(stderr, "Error while reading input file!\n");
exit(1);
}
if ( ! ( f = fopen(OUT_FILE, "w") ) ){
fprintf(stderr, "Can't open file %s for output!\n", OUT_FILE);
exit(1);
}
while ( ! pop(&stack, buf) ){
if ( fputs(buf, f) ){
fprintf(stderr, "Can't write to output file!\n");
exit(1);
}
}
if ( fclose(f) ){
fprintf(stderr, "Can't close output file!\n");
exit(1);
}
exit(0);
}