Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
pepa
0 / 0 / 1
Регистрация: 28.11.2015
Сообщений: 53
1

Определить в K-ой строке файла первое и последнее слово

11.03.2016, 08:58. Просмотров 961. Ответов 13
Метки нет (Все метки)

Дано:В текстовом файле fin.txt находится текст на русском языке. С клавиатуры вводится число K.
Требуется: определить в K-ой строке файла fin.txt первое и последнее слово, поменять их местами и сформировать текстовый файл fout.txt, в который записать измененную строку.

Помогите с файлами пожалуйста !!!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2016, 08:58
Ответы с готовыми решениями:

Определить в K-ой строке файла fin.txt первое и последнее слово, поменять их местами
Дано: в текстовом файле fin.txt находится текст на русском языке. С клавиатуры вводится число K....

В каждой строке исходного файла поменять местами первое и последнее слово, и записать в выходной файл
Написать программу, выполняющую чтение текстового файла “input.in” и выполняющую его преобразование...

Как удалить первое и последнее слово в строке
Подскажите, пожалуйста, как можно удалить первое и последнее слово в строке. причем вводятся...

Определить, совпадают ли первое слово в первой строке файла с первым словом последней строки файла
Доброго времени суток! Нужна помощь с решением задачи по теме "Файлы". Буду очень признателен за...

Строка символов. Поменять местами первое и последнее слово в строке
Есть задание: Дана строка символов. Поменять местами первое и последнее слово в строке. На сколько...

13
yrceus
84 / 84 / 80
Регистрация: 25.08.2013
Сообщений: 338
11.03.2016, 09:33 2
На С++ решение

Отсортировать N-ую строку файла fin.txt по возрастанию длин слов в строке и записать ее в fout.txt

Только в коде 43-ию строку заменить на эту
C++
1
swap(words.front(), words.back()); // не сорт., а поменять местами крайние слова
0
pepa
0 / 0 / 1
Регистрация: 28.11.2015
Сообщений: 53
11.03.2016, 17:56  [ТС] 3
Цитата Сообщение от yrceus Посмотреть сообщение
На С++ решение
Отсортировать N-ую строку файла fin.txt по возрастанию длин слов в строке и записать ее в fout.txt
Только в коде 43-ию строку заменить на эту
C++Выделить код
1
swap(words.front(), words.back()); // не сорт., а поменять местами крайние слова


НЕ работает почему то , сделал все как вы написали
0
yrceus
84 / 84 / 80
Регистрация: 25.08.2013
Сообщений: 338
11.03.2016, 18:29 4
Лучший ответ Сообщение было отмечено pepa как решение

Решение

Должно, файлы в проекте создаются сами. Добавьте строки в первом вводе, далее с новой строки Ctrl + Z.
После введите позицию строки(номер).
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
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <Windows.h>
#include <algorithm>
#include <locale>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "rus");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    fstream fin("fin.txt", fstream::app);
    string ch;
    while (getline(cin, ch)) { //вводим строку
        ch += '\n';
        fin << ch;              //отпр. ее в файл
    }
    ch.clear();
    fin.close();
    fin.open("fin.txt");        //сбрасываем позицию
    cin.clear();                //сбрасываем флаг EOF
    int x, sym, y = 0; cin >> x;//вводим какую строку читаем 
    if (x > 1) {
        while ((sym = fin.get()) != EOF)
            if (sym == '\n')    //ищем эту строку
                if (++y == x - 1)
                    break;
        getline(fin, ch);       //переписываем ее в string
    }
    else if (x > 0) getline(fin, ch);//если в первой строке
    if (x - 1 != y || !x)   return 0;
    vector<string> words(1);
    fin.close();
    for (int i = 0; i < ch.size(); ++i) {          //выбираем слова из нее
        if (isalpha(static_cast<unsigned char>(ch[i])) || isdigit(static_cast<unsigned char>(ch[i])))
            words.back() += ch[i];
        else if (!words.back().empty() && i != ch.size() - 1)
            words.emplace_back();
    }
    swap(words.front(), words.back());
    fin.open("fin2.txt", fstream::app);
    for (int i = 0; i < words.size(); ++i)                //записываем в новый файл строку
        fin << words[i] << ' ';
    fin << '\n';
    fin.close();
    return 0;
}
1
Миниатюры
Определить в K-ой строке файла первое и последнее слово  
11.03.2016, 18:29
pepa
0 / 0 / 1
Регистрация: 28.11.2015
Сообщений: 53
11.03.2016, 18:31  [ТС] 5
yrceus, Он почему то не меняет местами слова
0
yrceus
84 / 84 / 80
Регистрация: 25.08.2013
Сообщений: 338
11.03.2016, 18:33 6
Теперь должен.
0
pepa
0 / 0 / 1
Регистрация: 28.11.2015
Сообщений: 53
11.03.2016, 19:10  [ТС] 7
yrceus, Ок, извените не заметил что вы скинули решения

Добавлено через 22 минуты
yrceus, Спасибо большое !!!

Добавлено через 14 минут
yrceus, А почему она с начало все хорошо запускалась , а сейчас запускается окно и сразу же выходит из него ?
0
yrceus
84 / 84 / 80
Регистрация: 25.08.2013
Сообщений: 338
11.03.2016, 19:23 8
Не понимаю, как?

Добавлено через 1 минуту
Если указываете строку, которой нет, просто закроется консоль.
0
pepa
0 / 0 / 1
Регистрация: 28.11.2015
Сообщений: 53
11.03.2016, 20:45  [ТС] 9
yrceus, Что та все проекты , откроются и сразу же закрываются не успеваешь не чего сделать даже
0
yrceus
84 / 84 / 80
Регистрация: 25.08.2013
Сообщений: 338
11.03.2016, 20:59 10
Лучший ответ Сообщение было отмечено pepa как решение

Решение

Создайте новый проект, вставьте в него последний опубликованный код и откомпилируйте.
В открывшейся консоли введите несколько строк (латиница или кириллица), чтобы завершить ввод строк, с новой строки введите знак конца файла (Ctrl + Z).
После введите номер строки (должен быть меньше количества введенных строк).
Далее заходите в папку с проектом и ищите текстовые файлы fin.txt и fin2.txt.
И проверяете, в fin хранятся введенные вами строки, а в fin2 строка номер которой вы ввели. В ней (fin2) должна хранится строка с поменянными крайними словами.

Добавлено через 32 секунды
Даже не знаю других вариантов
1
sharpey
373 / 163 / 37
Регистрация: 21.09.2008
Сообщений: 548
12.03.2016, 02:46 11
pepa, Ваш случай.
1
pepa
0 / 0 / 1
Регистрация: 28.11.2015
Сообщений: 53
12.03.2016, 14:21  [ТС] 12
yrceus, А можете скинуть файл с проектом , а кто у меня тут проблемы какие то с программой ?
0
yrceus
84 / 84 / 80
Регистрация: 25.08.2013
Сообщений: 338
12.03.2016, 14:47 13
Лучший ответ Сообщение было отмечено pepa как решение

Решение

Архив
2
Вложения
Тип файла: rar ConsoleApplication31.rar (8.22 Мб, 6 просмотров)
pepa
0 / 0 / 1
Регистрация: 28.11.2015
Сообщений: 53
12.03.2016, 19:32  [ТС] 14
yrceus, Спасибо большое!!!
0
12.03.2016, 19:32
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2016, 19:32

Поменять местами первое и последнее слово в строке без использования указателей
Как я понял нужно использовать пробел как разделитель слов, но как это реализовать я не знаю.

Поменять первое слово максимальной длины и последнее слово минимальной длины
Отсортировать по убыванию слова любого предложения. Поменять первое слово максимальной длины и...

Дано предложение. Поменять местами его первое и последнее слово
Не знаю как записать во вторую переменную последнее слово. Помогите пожалуйста :wall: #include...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.