Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 31
1

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

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

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

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

Пытался писать код сам, но пока далее чем чтение файла не ушел.
Помогите кто чем может.
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2011, 19:47
Ответы с готовыми решениями:

Помогите пожалуйста с простой задачей
"Составить программу для упорядочения в порядке возрастания элементов однонаправленного списка" ...

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

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

Помогите пожалуйста с задачей.
Написать программу которая выводит значение функции y=tgx/2.Вывести значение функции на экран с...

7
Каратель
Эксперт С++
6601 / 4020 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
22.09.2011, 19:49 2
Цитата Сообщение от skef Посмотреть сообщение
Пытался писать код сам, но пока далее чем чтение файла не ушел.
показывайте
0
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
4854 / 3275 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
24.09.2011, 07:33 4
Цитата Сообщение от skef
2) чтение строки по символам
есть getline()

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

Код
 1. взять строку из исходного файла
 1.1. если строка первая, то второе слово прежней строки равно ''
 2. если второе слово не равно '', то
    вывести (второе слово + текущая строка) с учётом разделителя в новый файл
    иначе вывести текущую строку в новый файл
 3. взять второе слово текущей строки, к п.1
1
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
4854 / 3275 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
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
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 31
26.09.2011, 16:57  [ТС] 7
Прошу прощения... А можно более развернутый ответ?
0
4854 / 3275 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
27.09.2011, 03:11 8
Цитата Сообщение от skef
Задание: Написать программу, которая читает текстовый файл и выполняет
копирование второго слова каждой строки в начало следующей строки
функция доставания слова - лёгкий вариант
вообще, нужно сделать, чтобы разделители слов могли быть любыми
и перенос последнего второго слова на следующую строку не выполняется
1
Вложения
Тип файла: zip second_word.zip (756 байт, 26 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2011, 03:11

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

Помогите пожалуйста с задачей на массив
Дан массив целых чисел. Получить упорядоченную по возрастанию по-следовательность из чисел,...

Помогите пожалуйста разобраться с задачей
Что за метод применяется в этой задаче, я ума не приложу, под метод отрицательных масс не подходит,...

Помогите с задачей с матрицами пожалуйста!!!
На основе использования функционалов разработать функцию : Определить ряд матрицы, который...

Помогите пожалуйста с задачей java
Помогите мне пожалуйста у меня вот такое задание! Из положительных елементов массива PQ...


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

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

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