Из файла А в файл В переписать текст в обратном порядке - 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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы