0 / 0 / 0
Регистрация: 21.09.2017
Сообщений: 8
1

Записать в файл все строки исходного файла содержащие заданный символ

01.11.2017, 22:42. Показов 11641. Ответов 2
Метки нет (Все метки)

Задание:
Написать программу, которая создает в текстовом режиме файл в текущем каталоге с именем, вводимым с клавиатуры, и заполняет его произвольными строками, которые также вводятся с клавиатуры. После ввода последней строки файл закрывается. Создать новый файл с именем, вводимым с клавиатуры, в который поместить все строки, взятые из исходного файла, содержащие заданный символ. Символ вводится с клавиатуры. В результирующем файле строки должны следовать по возрастанию их длин. Сортировку строк перед записью в файл выполнить в оперативной памяти с помощью стандартной функции qsort().
Проблема:
Я немного не могу понять как сначала найти нужные строки, а потом еще их и отсортировать.
Код, который имеется на данный момент:
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
//Написать программу, которая создает в текстовом режиме файл в текущем каталоге с именем, вводимым с клавиатуры, и заполняет 
//его произвольными строками, которые также вводятся с клавиатуры. После ввода последней строки файл закрывается. 
//Создать новый файл с именем, вводимым с клавиатуры, в который поместить все строки, взятые из исходного файла, содержащие 
//заданный символ. Символ вводится с клавиатуры. В результирующем файле строки должны следовать по возрастанию их длин. 
//Сортировку строк перед записью в файл выполнить в оперативной памяти с помощью стандартной функции qsort(). 
#define _CRT_SECURE_NO_WARNINGS
#pragma once
 
#include "stdafx.h"
#include "stdio.h"
#include <iostream>
#include <conio.h>
#include <windows.h>
 
using namespace std;
struct str              
{
    char s[20];
    int len;
}
mas[40];    
 
int comparator(const void* s1, const void* s2) //сортировка строк по возрастанию длины
{
    return ((str*)s1)->len - ((str*)s2)->len;
}
 
void main(){
    //русификация ввода/вывода
    // установка кодовой страницы win-cp 1251 в поток ввода
    SetConsoleCP(1251);
    // установка кодовой страницы win-cp 1251 в поток вывода
    SetConsoleOutputCP(1251);
 
    puts("Группа 6214\nМорозова Екатерина, вариант 16\nЛабораторная работа №2 - Язык С. Работа с текстовыми файлами");
    puts( "Введите имя первого файла:" );
    int n=0;//счетчик количества строк
    char name[20];//буфер для ввода имени файла
    gets(name);
    strcat(name, ".txt");
    FILE *file = fopen( name, "w" );//открытие на запись первого текстового файла
    char s[100];
    char *string;
    puts("Введите количество строк в файле:");
    int size;
    scanf("%d",&size);//сколько будет строк в файле
    fflush (stdin); 
    puts("Введите строки:");
    int *m = new int[size];
    for (int i = 0; i<size; i++)//записываем строки в файл
    {
        string = gets(s);
        m[i] = strlen(string);
        fprintf (file, "%s\n", string);
    }
    fclose(file);//закрываем файл после работы с ним
 
 
    getch(); // Задержка окна консоли на экране перед завершением программы
    return;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2017, 22:42
Ответы с готовыми решениями:

Скопировать в другой файл все строки, содержащие заданный символ
Скопировать в другой файл все строки, содержащие заданный символ. Program space; var q,new:text;...

Считать текст из файла, вывести в другой файл и на экран только строки содержащие заданный с клавиатуры символ
// Написать программу, которая считывает текст из файла и выводит в другой файл // и на экран...

Записать в файл B, те строки файла A и их номера, в которых заданный символ p не встречался ни разу
Дан файл А. Записать в файл B, те строки и их номера, в которых заданный символ p не встречался ни...

Записать в файл g все строки файла f, содержащие строку s
2. Даны текстовый файл f и строку s. Записать в файл g все строки файла f, содержащие строку s.

2
Kukstyler
02.11.2017, 11:54
  #2

Не по теме:

С++ детектед.

0
Форумчанин
Эксперт CЭксперт С++
8194 / 5044 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
02.11.2017, 13:40 3
 Комментарий модератора 
KaterinaMoro, дублирование тем запрещено.


У вас в коде полно конструкций из С++, перенёс в соответствующий раздел.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2017, 13:40
Помогаю со студенческими работами здесь

Дан текстовый файл. Записать в отдельный файл все симметричные строки исходного файла, являющиеся отдельными предложения
Работа с файлами и строками,если можно,то напишите код,а если можно,то ещё с объяснениями

Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве фрагмента стро
Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки...

Переписать в отдельный текстовый файл строки, содержащие заданный символ не более одного раза
Необходимо написать программу,которая будет сохранять в отдельный текстовый документ строки...

Выбрать из заданного текстового файла все слова, содержащие заданный символ и вывести на экран
Если не сложно помогите с задачей. Может быть код у кого-нибудь уже есть, задача то простая.. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru