3-ий пункт тоже выполнил
C++ (Qt) |
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
| #include <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
#include <clocale>
#include <sstream> // заголовочный файл с классами, функциями и переменными для организации работы со строками
using namespace std;
int main() // определение главной функции
{
//пример 6 запись 4ой и 6ой строки из 9 строк из файла add.txt ( построчно )
string a;
setlocale (0, "");
ofstream fout; // определение обьекта fout для вывода данных в файл
ifstream fin; // определение обьекта fin для ввода данных из файла
fin.open ("add.txt");
char с[100];
cout << "Введите имя файла для записи" << endl;
string name1;
cin >> name1;
string c = name1 + ".txt";
fout.open (c.c_str(), ios::app);
int line_no=1;
int n;
string probel (" ");
string sohr;
size_t nachaloSlova[100];
size_t konecSlova[100];
while(getline(fin, a))
{
if(line_no==1) //смотрим первую строку
{
cout<<"Введите номер слова в первой строке, которое хотите вывести на экран:\n";
cin>>n;
for (int i=1;i<n+1;i++)
{
nachaloSlova[0]=a.find(probel)+1;
konecSlova[0] = a.find(probel,nachaloSlova[0]);
nachaloSlova[i]=konecSlova[i-1]+1;
konecSlova[i] = a.find(probel,nachaloSlova[i]);
}
sohr=a.substr(nachaloSlova[n-1],konecSlova[n-1]-nachaloSlova[n-1]);
fout << sohr << endl;
}
if(line_no==5) //смотрим пятую строку
{
cout<<"Введите номер слова в пятой строке, которое хотите вывести на экран:\n";
cin>>n;
for (int i=1;i<n+1;i++)
{
nachaloSlova[0]=a.find(probel)+1;
konecSlova[0] = a.find(probel,nachaloSlova[0]);
nachaloSlova[i]=konecSlova[i-1]+1;
konecSlova[i] = a.find(probel,nachaloSlova[i]);
}
sohr=a.substr(nachaloSlova[n-1],konecSlova[n-1]-nachaloSlova[n-1]);
fout << sohr << endl;
}
line_no++;
}
fin.close();
fout.close();
system ("pause");
} |
|
Содержимое add.txt:
Код
marat artur rinat edik
ruslan sergey vadim roman
ramil ilsur azat zinnur
ilgiz jenya sasha fanis
lesha rushat ilnur dima
oleg vladimir ivan mickle
PS в начале и в конце каждой строки пробел
На выходе получил:
Добавлено через 1 минуту
Может кто-нибудь подскажет способ покороче?
Добавлено через 6 часов 45 минут
обновлено
Добавлено через 26 минут
uglyPinokkio , можешь отправить примеры работы с потоками данных которые берутся из файла?
Допустим чтобы в дальнейшем можно еще было выполнять над ними операции добавления, изменения, удаления
Добавлено через 1 час 35 минут
Вдруг понадобится кому нибудь:
Программа считает количество строк в файле add.txt выводит на экран и записывает в новый указанный пользователем файл.
C++ (Qt) |
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 <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
#include <clocale>
#include <sstream> // заголовочный файл с классами, функциями и переменными для организации работы со строками
using namespace std;
int main() // определение главной функции
{
//пример 8 Программа считает количество строк в файле add.txt выводит на экран и записывает в новый указанный пользователем файл.
string a;
setlocale (0, "");
ofstream fout; // определение обьекта fout для вывода данных в файл
ifstream fin; // определение обьекта fin для ввода данных из файла
fin.open ("add.txt");
char с[100];
cout << "Введите имя файла для записи" << endl;
string name1;
cin >> name1;
string c = name1 + ".txt";
fout.open (c.c_str(), ios::app);
int line_nomer=0;
int n;
string probel (" ");
string sohr;
//size_t nachaloSlova[100];
//size_t konecSlova[100];
while(getline(fin, a))
{
//cout<<"Строка в файле add.txt = "<<line_nomer<<"\n"; //вывод на экран
//fout<<"Строка в файле add.txt = "<<line_nomer<<"\n"; //запись во второй файл
line_nomer++;
}
cout<<"Количество строк в файле add.txt = "<<line_nomer<<"\n"; //вывод на экран
fout<<"Количество строк в файле add.txt = "<<line_nomer<<"\n"; //запись во второй файл
fin.close();
fout.close();
system ("pause");
} |
|
Добавлено через 7 часов 33 минуты
Актуально