2015-06-30 3 views
-2

У меня возникли проблемы с копированием файлов txt. Мне нужна информация из одного файла в другой.Копирование из одного txt-файла в другой с помощью c

Мой код выглядит так,

_tprintf (TEXT("%s\n"), FindFileData.cFileName); 

memset(fileName, 0x00, sizeof(fileName)); 
_stprintf(fileName, TEXT("%s\\%s"), path, FindFileData.cFileName); //iegust 

FILE *fptr = fopen(fileName, "r");//atver 

fscanf(fptr,"%[^\n]",c); //iegust datus no faila 
printf("Data from file:\n%s",a); 

strcpy(a, c); //nokope datus 
buffer2 = strtok (c, ","); //norada partraukumu un tadas lietas 
while (buffer2) { 
     buffer2 = strtok (NULL, ","); 
     if(i<1){ printf("%s\n", c);} 
     i++; 
     while (buffer2 && *buffer2 == '\040'){ 
       buffer2++; 
       // TODO ieliec iekavinas 
     } 
} 

И после этого я использую основные fputs(). Моя проблема в том, что этот код игнорирует новые строки. Он печатает отлично, каждая строка в собственной строке, но этого не происходит в файле. (\ П).

+0

oooh ... indent please .... –

+1

В этом разница между fputs и puts, что вас заводит. puts выводит новую строку. –

+0

Хорошо, извините за беспорядок в моем вопросе, это просто очень напряженный день. И я постараюсь понять, как работать с puts(). – Them4

ответ

1

Ваша проблема в том, что вам просто нужно скопировать информацию из одного файла в другой. Итак, почему вы не используете простое решение для этого, чем ваше. У меня есть код снайпера, который может легко решить вашу проблему, как показано ниже.

Если я ошибаюсь в отношении вашего вопроса, пожалуйста, дайте мне советы.

#include <stdio.h> 
#include <stdlib.h> // For exit() 

int main() 
{ 
    FILE *fptr1, *fptr2; 
    char filename[100], c; 

    printf("Enter the filename to open for reading \n"); 
    scanf("%s", filename); 

    // Open one file for reading 
    fptr1 = fopen(filename, "r"); 
    if (fptr1 == NULL) 
    { 
     printf("Cannot open file %s \n", filename); 
     exit(0); 
    } 

    printf("Enter the filename to open for writing \n"); 
    scanf("%s", filename); 

    // Open another file for writing 
    fptr2 = fopen(filename, "w"); 
    if (fptr2 == NULL) 
    { 
     printf("Cannot open file %s \n", filename); 
     exit(0); 
    } 

    // Read contents from file 
    c = fgetc(fptr1); 
    while (c != EOF) 
    { 
     fputc(c, fptr2); 
     c = fgetc(fptr1); 
    } 

    printf("\nContents copied to %s", filename); 

    fclose(fptr1); 
    fclose(fptr2); 
    return 0; 
} 
+0

Это лишь часть его. У меня есть шаблон, я копирую шаблон в новый файл, а затем беру информацию из другого файла, помещая каждую строку, разделенную запятой в определенной строке. – Them4

Смежные вопросы