Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Работа с текстовым файлов


Автор: bncom 26.2.2006, 18:54
Помогите, пожалуйста, с программой:
Скопировать содержимое текстового файла, удалив в каждой строке самое длинное слово.
Я тут даже смысл не понимаю. Что нужно:
- Копировать будем в любой файл (с учетом того, что его еще не существует), тогда нам надо его еще и создать.
- Файл уже существует, тогда мы его переписываем
Эти два варианта: мы будем вводить текст сами (руками)
- Открываем текстовый файл, удаляем самые длинные слова в каждой строчке, и записываем полученный результат в другой файл.
Этот вариант: мы просто прочитаем из файла текст.

Как сделать лучше?
Напишите, примерно, код.... smile

Язык: Си
Компилятор: TurboC 3.0

Автор: Aleksandor 26.2.2006, 23:31
Можно прочитать файл в память, читать из памяти построчно попутно удаляя в каждой строке самое длинное слово, готовые строки записать в файл по одной или все сразу

Автор: MAKCim 27.2.2006, 08:50
Код

#include <stdio.h>

void recopy(const char* path)
{
    FILE* fs=fopen(path,"r");
    if (fs)
    {
        unsigned int bytes,i=0;
        char buffer[256];
        do
        {
            bytes=fread(&buffer[i],sizeof(char),1,fs);
            if (bytes)
            {
                if (buffer[i]=='\n')
                {
                    /*в массиве buffer[0]...buffer[i-1], здесь можно обрабатывать*/
                }
                i++;
            }
        }
        while (bytes)
    }
    close(fs)
}

int main(int argc, char* argv[])
{
    if (argc==2) recopy(argv[1]);
    return 0;
}

Автор: bncom 27.2.2006, 19:40
Чего-то не работает, ошибки выдает...

Автор: Earnest 27.2.2006, 20:10
bncom, ты программист или где?
Тебе дали каркас, предполагая, что дальше - ты сам.

За готовыми программами обращайся в Центр помощи или в Работу.

Автор: MAKCim 27.2.2006, 22:03
Цитата

Чего-то не работает, ошибки выдает...

не знаю, чего у тебя не работает, пример правильный
может ты неправильно используешь?

Автор: Earnest 28.2.2006, 17:17
MAKCim,
а у тебя в примере кода пары завершающих точек с запятой не хватает, вот и не компилируется. smile

Автор: bncom 28.2.2006, 19:01
Earnest, к сожалению я не программист... smile

Автор: egorletov 28.2.2006, 19:57

file.txt sozday v papke proekte / potom v resyrs proekta podkuti

smisla ne ponal , no kompit)
Код




#include <stdio.h>
#include <conio.h>

void recopy(const char* path)
{
    FILE* fs=fopen("file.txt","r");
    if (fs)
    {
        unsigned int bytes,i=0;
        char buffer[256];
        do
        {
            bytes=fread(&buffer[i],sizeof(char),1,fs);
            if (bytes)
            {
                if (buffer[i]=='\n')
                {
                    /*в массиве buffer[0]...buffer[i-1], здесь можно обрабатывать*/
                }
                i++;
            }
        }
        while (bytes);
    }
   // close(fs);
}

int main(int argc, char* argv[])
{
    if (argc==2) recopy(argv[1]);
    getch();
    return 0;
}


Автор: MAKCim 28.2.2006, 22:02
Цитата

а у тебя в примере кода пары завершающих точек с запятой не хватает, вот и не компилируется

smile smile логично, не обратил внимания

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)