Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++]Работа с файлами 
:(
    Опции темы
ALEXEY13
Дата 14.12.2007, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 9.11.2007

Репутация: нет
Всего: нет



Эта программа копирует содержимое текстового файла, ограничив длину строки N символами. Слова, не помещающиеся в заданную строку не копировать.
А мне нужно слова, не помещающиеся в заданную строку скопировать в виде новой строки.
Подскажите, пожалуйста, как это сделать.

Код

#include <stdio.h>    
#include <string.h>    
#include <stdlib.h>    

#define MAXLEN 3

void main(void)
{    
    char c;
    char String[MAXLEN + 1];

    char *pathFileInput  = (char*)calloc(20, sizeof(char));
    char *pathFileOutput = (char*)calloc(20, sizeof(char));

    FILE *fileInput;
    FILE *fileOutput;

    printf("Input file path  -> ");
    scanf("%s", pathFileInput);

    printf("Output file path -> ");
    scanf("%s", pathFileOutput);

    fileInput  = fopen(pathFileInput,  "rt");
        fileOutput = fopen(pathFileOutput, "wt");
  
    while(c != EOF)
    {
        fgets(String, MAXLEN + 1, fileInput);
        fputs(String, fileOutput);
        fputc('\n', fileOutput);
        
        while (c != '\n' && c != EOF)
            c = fgetc(fileInput);
        
        if (c != EOF)
            c = ' ';
    }

    free(pathFileInput);
    free(pathFileOutput);
}


PM MAIL   Вверх
baldina
Дата 14.12.2007, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Код

#include <stdio.h>    
#include <string.h>    
#include <stdlib.h>    

#define MAXLEN 3

void main(void)
{    
    char c;
    char String[MAXLEN + 1];

    char *pathFileInput  = (char*)calloc(20, sizeof(char));
    char *pathFileOutput = (char*)calloc(20, sizeof(char));

    FILE *fileInput;
    FILE *fileOutput;

    printf("Input file path  -> ");
    scanf("%s", pathFileInput);

    printf("Output file path -> ");
    scanf("%s", pathFileOutput);

    fileInput  = fopen(pathFileInput,  "rt");
        fileOutput = fopen(pathFileOutput, "wt");
  
    while(c != EOF)
    {
        fgets(String, MAXLEN + 1, fileInput);
        fputs(String, fileOutput);
        fputc('\n', fileOutput);
        
        do {
            fputc (c = fgetc(fileInput), fileOutput);
         } while (c != '\n' && c != EOF);

        
        if (c != EOF)
            c = ' ';
    }

    free(pathFileInput);
    free(pathFileOutput);
}


Добавлено через 2 минуты и 32 секунды
Впрочем еще проще будет выкинуть внутренний цикл  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0394 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.