Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Alinusya
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 5
#1

Файлы в C++ - C++

18.10.2013, 09:16. Просмотров 488. Ответов 0
Метки нет (Все метки)

1)С помощью текстового редактора создать файл text1.txt и заполнить словами из латинских букв (не менее 30 слов).
Файл number2.txt программно заполнить случайными целыми числами, принадлежащими диапазону от -100 до 100. Количество чисел в файле задается с клавиатуры. Количество чисел в каждой строке является произвольным числом из диапазона от 0 до 10 и задается с помощью функции rand(). Вывести числа на консоль, сохранив разбиение на строки, соответствующее файлу number2.txt.
При реализации программы необходимо для заполнения файла number2.txt случайными целыми числами использовать заголовочный файл, содержащий функцию для заполнения файла. При работе с файлом, заполненным словами, можно использовать функции работы со строками. При выводе результата в файл number3.txt сохранить разбиение на строки.
Записать в файл total.txt сначала все элементы файла number2.txt, выровненные по правому краю, а затем все элементы файла text2.txt, выровненные по центру. Переименовать файл total.txt (новое имя файла вводится с клавиатуры).
Вывести на консоль сначала все элементы файла number2.txt, выровненные по правому краю, а затем все элементы файла text2.txt, выровненные по центру.




2)Найти разность пар соседних элементов файла number1.txt. Результат вывести в файл number3.txt и на консоль. В конец файла number2.txt добавить слова "Result = " и количество элементов, равных нулю, вывести полученный результат на консоль.
Вывести все слова файла text1.txt, предварительно преобразовав каждое из них по следующему правилу: оставить в слове только первые вхождения каждой буквы. Результат записать в файл text2.txt.



первую часть я выполнила, не знаю как реализовать разность двух соседних чисел и оставить в слове только первые вхождения каждой буквы




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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <iostream>
#include <sstream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <math.h>
 
using namespace std;
 
#include "vvod.h"
 
#define MAXSTRING 250   //максимальная длина строки текстового файла
 
void chislo_o(const char *a) //Посчет чисел равных 0
{
 char *s=new char[MAXSTRING];
 char tmp[16];
 int i;
 int is;
 int l;
 int n;
 
 ifstream f(a);
 l=0;
 while (!f.eof()) {
  f.getline(s,MAXSTRING);
  for (i=0,is=-1;i<strlen(s);i++) //strlen-возвращает длину строки
   if (s[i]==' ') {            //найден конец числа
    strncpy(tmp,&s[is],i-is);//для копирования содержимогов буфер ограниченного размера
    n=atoi(tmp);             //преобразовать символьное число к типу int
    if (n=0){ l++; }
    is=-1;
   }
   else
    if (is<0) is=i;
 }
 f.close();
 ofstream fout(a,ios::app); //открытие файла для добавления в конец
 fout<<"Result="<<l<<endl;
 fout.close();
 cout<<"Result="<<l<<endl;
}
 
void Raznost(const char *a, const char *b) //Запись в файл разности соседних элементов
{
 char *s=new char[MAXSTRING];
 char tmp[16];
 int i;
 int is;
 int n;
 
 ifstream fin(a);
 ofstream fout(b);
 while (!fin.eof()) {
  fin.getline(s,MAXSTRING);
  for (i=0,is=-1;i<strlen(s);i++)
   if (s[i]==' ') {
    strncpy(tmp,&s[is],i-is);
    n=atoi(tmp);
    int Raz;
    Raz ?????
    fout<<Raz<<' ';
    is=-1;
   }
   else
    if (is<0) is=i;
  fout<<endl;
 }
 fin.close();
 fout.close();
}
 
void zapis(const char *a, const char *b, int shirina)//запись в total и выравнивание
{
 int n=256;
 ofstream fout("total.txt");
 ifstream f1in(a);
 ifstream f2in(b);
 while (!f1in.eof()) {
char *s=new char[n];
  f1in.getline(s,n);
  for (int i=0;i<=shirina-strlen(s);i++) fout<<' ';
  fout<<s<<endl;
 }
 while (!f2in.eof()) {
   char *s=new char[n];
  f2in.getline(s,n);
  for (i=0;i<=(shirina-strlen(s))/2;i++) fout<<' '; //дополнение пробелами слева
  fout<<s<<endl;
 }
 f1in.close();
 f2in.close();
 fout.close();
}
 
void postrochnii_vivod(const char* a) //Построчный вывод содержимого текстового файла на консоль
{
int n=256;
 ifstream f(a);
 while (!f.eof()) {
    char * s=new char[n];
  f.getline(s,n);
  cout<<s<<endl;
 }
 f.close();
}
 
 
 
int main ()
{
 char ft[1024];
 int n;
 
ifstream inFile("text1.txt");
 cout<<"Vvedite kolichestvo chisel v faile: ";
 cin>>n;
 vvod("number2.txt",n);
 cout<<"number2.txt"<<endl;
 postrochnii_vivod("number2.txt");
 zapis("number2.txt","text1.txt",75);
 cout<<"total.txt"<<endl;
 postrochnii_vivod("total.txt");
 cout<<"Vvedite novoe imya dlya total.txt: ";
 cin>>ft;
 rename("total.txt",ft);
 Raznost("number2.txt","number3.txt");
 cout<<"number3.txt"<<endl;
 postrochnii_vivod("number3.txt");
 chislo_o("number2.txt");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 09:16     Файлы в C++
Посмотрите здесь:

Файлы C++
Файлы C++
Файлы C++
C++ Файлы
Файлы C++
C++ Файлы
файлы C++
Файлы C++
Файлы C++
C++ файлы
C++ файлы
файлы в с++ C++

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

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

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