Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 5.00
skef
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 31
#1

Помогите с задачей, пожалуйста! (файлы Си++) - C++

22.09.2011, 19:47. Просмотров 2479. Ответов 7
Метки нет (Все метки)

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

Ну вот. Примерный алгоритм по которому я это собирался сделать примерно такой:
1) Открытие исходного файла
2) чтение строки по символам
3) Символ - пробел?
Если нет, то читать следующий символ.
Если да, то записать следующие символы во временную строку.
(До второго пробела.)
Далее, когда второе слово выделено, в выходном файле писать это слово.
Далее считывать в исходном файле следующие строку и в выходном писать
после этого слова.
4) Далее: в исходном файле последняя строка?
Если нет, то идем к пункту 3 (в смысле читаем следующую строку и ищем в
ней второе слово)
Если да, то запрашиваем именование выходного файла, записываем его,
далее читаем и отображаем содержимое.

Пытался писать код сам, но пока далее чем чтение файла не ушел.
Помогите кто чем может.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2011, 19:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите с задачей, пожалуйста! (файлы Си++) (C++):

Помогите пожалуйста с задачей c++ - C++
Дан двухмерный массив вещественных чисел размерностью N*M Заменить все положительные элементы на их удвоенное произведение.

Помогите пожалуйста с задачей - C++
Даны натуральные числа n и k, n > 1. Напечатать k десятичных знаков числа 1/n. (При наличии двух десятичных разложений выбирается то из...

Помогите пожалуйста с простой задачей - C++
"Составить программу для упорядочения в порядке возрастания элементов однонаправленного списка" Видела уже подобную тему на Паскале,...

Помогите пожалуйста с задачей по BORLAND С++ - C++
Создать шаблон функции, выполгяющий сортировку слиянием (Метод Фон Неймана) в массиве. Протестировать шаблон для массивов с элементами...

Помогите пожалуйста с легкой задачей на C++. - C++
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число – номер вертикали (при...

Помогите с задачей пожалуйста. Перегрузка операций. - C++
Всем привет! Я новичок в изучении СИ, не могу разобраться как выполнить задачу. Вариант следующий. Вектор в пятимерном евклидовом...

7
Jupiter
Каратель
Эксперт С++
6560 / 3981 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.09.2011, 19:49 #2
Цитата Сообщение от skef Посмотреть сообщение
Пытался писать код сам, но пока далее чем чтение файла не ушел.
показывайте
0
skef
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 31
23.09.2011, 18:17  [ТС] #3
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
int main ( )
{
    char filename [20];
    cout << "Enter name for new file: ";
    cin >> filename;
    //создать объект потока вывода для нового файла и назвать его fout
    ofstream fout (filename);
    fout << "Здесь набирается некий текст  \n"; // записать в файл
    fout << "Для помещения его в программу \n";
    cout << "Enter number,please: \n"; // вывести на экран
    float secret; 
    cin >> secret;
    fout << "Вы ввели число " << secret << "\n";
    fout.close ( ); // закрыть файл
//  fin.open (filename);
// создать объект потока ввода нового файла и назвать его fin
    ifstream fin;
    fin.open "(qwer.txt)"
//  cout << "Here are the contents of " << filename << "\n";
//  char ch;
//  while (fin.get(ch)) // считать символ из файла и вывести на экран
    cout << "Done \n";
    cin.get();
//  fin.close ( );
//  fout.close ( ); // закрыть файл
    return 0;
}
Программа создает файл, заносит в него текст, спрашивает число, потом заносит в файл текст и число.
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.09.2011, 07:33 #4
Цитата Сообщение от skef
2) чтение строки по символам
есть getline()

Цитата Сообщение от skef
3) Символ - пробел?
нужно делать для набора символов
функция принимает строку, номер слова и строку разделителей; возвращает строку со словом

Код
 1. взять строку из исходного файла
 1.1. если строка первая, то второе слово прежней строки равно ''
 2. если второе слово не равно '', то
    вывести (второе слово + текущая строка) с учётом разделителя в новый файл
    иначе вывести текущую строку в новый файл
 3. взять второе слово текущей строки, к п.1
1
skef
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 31
24.09.2011, 16:52  [ТС] #5
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
char buf [80];
char buf2 [80];
char ch;
 
int main(void)
{
    ifstream fin;
    fin.open ("text.txt");
 
//////////////////////////////////////////////////////////////////////////////////
 
    //читаем слово до пробела, выводим его и переносим 
    // указатель текущей позиции к следующему слову
    fin >> buf;
    // читаем второе слово, выводим его 
    fin >> buf;
    cout << buf;
    //читаем эту строку, и переносим курсор в начало сл. строки
    fin.getline (buf,80);
 
    //читаем следующую строку и выводим ее после второго слова предыдущей строки
    fin.getline (buf,80);
    cout << " " << buf << "\n";
    //здесь надо вернуться в начало предыдущей строки
    //на этом цикл должен быть завершен. Курсор в начале второй строки,
    //оттуда и начнется поиск второго слова во второй строке и т.д
    //признаком выхода из цикла должно быть окончание файла
 
/////////////////////////////////////////////////////////////////////////////////
 
 
    fin.close ();
    cin.get();
    return 0;
}
Вот мой черновик. часть кода между //////////////////////////////////////////
я хотел занести в цикл, т.к. там находится чтение нужных слов и строк.
Выходить из этого цикла необходимо по завершению файла. Далее должно
производиться именование выходного файла и его отображение.
Тогда возникает вопросы:
1) (мы дважды читаем строку, и курсор у нас находится)
в начале третей строки. Как вернуть его в начало второй?
2) как создать цикл, условием выхода из которого будет достижение
конца файла?
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.09.2011, 06:49 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    ifstream in("file.txt");
    string s;
    
    while (getline(in, s))
        cout << s << endl;
    in.close();
    return 0;
}
построчное чтение файла
1
skef
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 31
26.09.2011, 16:57  [ТС] #7
Прошу прощения... А можно более развернутый ответ?
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.09.2011, 03:11 #8
Цитата Сообщение от skef
Задание: Написать программу, которая читает текстовый файл и выполняет
копирование второго слова каждой строки в начало следующей строки
функция доставания слова - лёгкий вариант
вообще, нужно сделать, чтобы разделители слов могли быть любыми
и перенос последнего второго слова на следующую строку не выполняется
1
Вложения
Тип файла: zip second_word.zip (756 байт, 25 просмотров)
27.09.2011, 03:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 03:11
Привет! Вот еще темы с ответами:

подскажите пожалуйста с задачей - C++
в общем сначало нужно ввести Х это количество ящиков которые будут ехать по конвееру, над конвеером расположен сам робот, который будет...

Помогите с задачей - C++
Не судите строго, я пока новичок и еще не полностью изучил язык Где мои ошибки? //Программа для решения задач квадратных уравнении ...

Помогите с задачей с указателями - C++
Есть задание на тему: Обработка строк с помощью указателей Задание звучит так: Вводить и обрабатывать строки в цикле до тех пор,...

Помогите разобраться с задачей.... - C++
Дорогие программисты прошу вас помочь в следующем вопросе: мне нужно открыть в С++ файл формата BMP и получить значение его пикселей в виде...


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

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

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