Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/20: Рейтинг темы: голосов - 20, средняя оценка - 4.60
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427

Запись строк в файл

18.05.2010, 22:26. Показов 4863. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наименьшей длины (в том же порядке).

И вторая задача такая же, только строки наибольшей длины.

Вопрос следующий, как реализовать поиск наименьшей или наибольшей строки при работе с файлом? Действует ли здесь функция strlen из библиотеки string.h?? Если можно, то приведите небольшой примерчик. Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.05.2010, 22:26
Ответы с готовыми решениями:

Запись строк в файл
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <conio.h> #include <stdlib.h> #include <string.h> #define size 50 ...

Запись строк в файл
Помогите, Не могу понять, что делает строка: f_in=creat("in.file",S_IWRITE|S_IREAD); while(true) { kol++; ...

Объединение строк и запись в файл
Небольшая задача на C++ состоит в том что из файла t.txt считываются строки, затем заносятся в массив, объединяются и записываются в файл...

21
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12848 / 7597 / 1766
Регистрация: 25.07.2009
Сообщений: 13,985
20.05.2010, 00:07
Студворк — интернет-сервис помощи студентам
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define FIN_NAME "input.txt"
#define FOUT_NAME "output.txt"
 
int cmp_func(const void * a, const void * b){
    return strcmp(*(char**)a, *(char**)b);
}
 
int main(void){
    FILE * fin, * fout;
    char buf[BUFSIZ], **rows;
    long cnt, i;
 
    if ( ! ( fin = fopen(FIN_NAME, "r") ) ){
        perror("fopen");
        exit(EXIT_FAILURE);
    }
 
    rows = NULL;
    cnt = 0;
    while ( fgets(buf, BUFSIZ, fin) ){
        if ( *buf == '\n' )
            continue;
        if ( ! ( rows = realloc(rows, sizeof(char*) * (cnt + 1)) ) ){
            perror("realloc");
            if ( fclose(fin) )
                perror("fclose");
            exit(EXIT_FAILURE);
        }
        if ( ( rows[cnt++] = strdup(buf) ) == NULL ){
            perror("strdup");
            if ( fclose(fin) )
                perror("fclose");
            exit(EXIT_FAILURE);
        }
    }
    if ( ferror(fin) ){
        perror("ferror");
        for ( i = 0; i < cnt; ++i )
            free(rows[i]);
        free(rows);
        exit(EXIT_FAILURE);
    }
    if ( fclose(fin) )
        perror("fclose");
 
    if ( ! rows ){
        fprintf(stderr, "No text reached!\n");
        exit(EXIT_FAILURE);
    }
 
    qsort(rows, cnt, sizeof(char*), cmp_func);
 
    if ( ! ( fout = fopen(FOUT_NAME, "w") ) ){
        perror("fopen");
        for ( i = 0; i < cnt; ++i )
            free(rows[i]);
        free(rows);
        exit(EXIT_FAILURE);
    }
    for ( i = 0; i < cnt; ++i ){
        if ( fputs(rows[i], fout) ){
            perror("fputs");
            for ( i = 0; i < cnt; ++i )
                free(rows[i]);
            free(rows);
            exit(EXIT_FAILURE);
        }
    }
 
    for ( i = 0; i < cnt; ++i )
        free(rows[i]);
    free(rows);
 
    if ( fclose(fout) ){
        perror("fclose");
        exit(EXIT_FAILURE);
    }
 
    printf("Done.\n");
    exit(EXIT_SUCCESS);
}
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
20.05.2010, 00:22
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
никогда не встречался особо, поэтому даже понятия не имею, как и что сортировать.
Сортировать надо строки, как- тебе чел вчера сказал ещё, ищи темы на форуме или в книгах. У тебя 200 книг по С и ты ещё спрашиваешь, где брать книги. Кернигана и Ричи в сети скачай и изучи сортировку строк.

НЕ получится- спрашивай.
Удачи.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.05.2010, 00:22

Запись в файл, состоящий из нескольких строк
мучаюсь все с той же программкой: Есть тестовый файл вида: INLINE : 233 XLINE : 202 668417.50000 565878.00000 995.87421 ...

Запись вектора строк в бинарный файл
Помогите пожалуйста. Компилируется отлично, без ошибок и варнингов, но при запуске выдает ошибку. уже не знаю как быть. не понятно какая...

Запись в файл и вывод из файла строк
Есть две функции: одна записывает дисциплину в файл, другая выводит список дисциплин на экран. Проблема в том, что если название дисциплины...

Запись в текстовый файл адресов вместо строк
Всем привет. Ребята, читаю из бинарного файла структуру и хочу все записать в текстовый файл. Структура struct Client { ...

Чтение строк из файла, объединение и запись в другой файл
Есть текстовый файл в котором записаны несколько строк (строки состоят из 0 и 1). Нужно считать строки из файла и заменить 3 случайных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru