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

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

Войти
Регистрация
Восстановить пароль
 
cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
#1

Чтение и запись - C++

25.11.2013, 21:03. Просмотров 419. Ответов 11
Метки нет (Все метки)

Здравствуйте! Писал программку по чтению одного файла и записи данных первого во второй с измененным содержимым. Смысл таков - есть первый файл например
абаба лоло тлошо выпа гыба
, а во второй записываем тоже самое только пробел заменяем на перенос на новую строку. Так как при чтение файла оператором >>, пробельные символы опускаются, то я побывал читать в бинарном режиме, но все равно ничего толкового не нашел. Потом использовал get() и put(), но ничего толком не вышло.
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
#include <iostream>
#include <fstream>
#include <cstring>
#include <conio.h>
 
 
using namespace std;
 
int main()
{
    cout << "\t\t\t***Number log***\n\n";
 
    ofstream fout;
    ifstream fin;
 
    register int i;
 
    
    char buf[1500];
    char buf2[1500];
    char file_name1[25];
    char file_name2[25];
    char pref[5]=".txt";
 
    cout << "Vvedote nazvanie fayla s no sort logs: ";
    cin.getline(file_name1,25);
    strcat(file_name1,pref);
    cout << endl;
 
    cout << "Vvedote nazvanie fayla kyda soxranatsya sort: ";
    cin.getline(file_name2,25);
    strcat(file_name2,pref);
    cout << endl;
 
    fin.open(file_name1,ios::binary);
    fout.open(file_name2,ios::binary);
 
    for(i=0;i<1500;i++)
    {
        fin.get(buf[i]);
        buf[i]=buf2[i];
        if(buf2[i]==' ')
        {
            buf2[i]='\n';
            fout.put(buf2[i]);
        }
        else
        {
            fout.put(buf2[i]);
        }
    }
    
 
_getch();
return 0;
}
Думаю можно попробовать так, через каждые десять символов стоит пробел, тогда можно припаять в код проверку
C++
1
if(i*(i/10)==i)
но все же это не очень надежно.

Вопрос: Как правильно считать пробелы и заменить их на "\n".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 21:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение и запись (C++):

[Файлы] Запись-чтение-запись. Почему не прокатывает? - C++
Сначала записываю в файл &quot;а&quot; запись &quot;makulatura&quot;, потом читаю ее в строку h. Все ок. Но потом когда открываю файл &quot;a&quot; опять для записи с...

Чтение/запись - C++
какая буква в fopen, открывает файл на одновременное чтение/запись, причем если файл существует, то не стирает его

Чтение и запись в файл - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main() { int S, x, i, z, k,f; ofstream f(&quot;2.txt&quot;,...

Запись и чтение из файла - C++
Здравствуйте, написал программу которая реализует следующее, пользователь создает исходный текстовый файл, в который заносит текст,...

запись\чтение из файла - C++
У меня несколько вопросов по поводу запись\чтение из файла Как это вообще работает?) Чтобы потом читать из файла надо забивать каждое...

Запись и чтение из файла - C++
Нужно сохранять в файл запись в таком виде Имя Фамилия Телефон Имя ..... помогите плиз реализовать это.И соответсвенно чтение...

11
Alex_Skripa
18 / 18 / 1
Регистрация: 16.09.2013
Сообщений: 126
25.11.2013, 21:13 #2
Почему с get() не вышло? Читаешь посимвольно из файла, в какую нибудь string, и если символ=' '; то к string присваиваешь то что тебе нужно, ничего сложного...

Добавлено через 2 минуты
Да и вообще тут гораздо все проще из файла читаешь >> сходу в файл записываешь только файл<<переменная;
файл<<"\n" и все, так как >> читает строку до первого пробела.
1
cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
25.11.2013, 21:16  [ТС] #3
Записывает мусор
пробую
0
Alex_Skripa
18 / 18 / 1
Регистрация: 16.09.2013
Сообщений: 126
25.11.2013, 21:18 #4
Цитата Сообщение от cpp_job Посмотреть сообщение
Записывает мусор
пробую
Поясните пожалуйста) не понял комментария.
0
cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
25.11.2013, 21:20  [ТС] #5
Цитата Сообщение от Alex_Skripa Посмотреть сообщение
Поясните пожалуйста) не понял комментария.
Ну делаю то что вы сказали.
0
Alex_Skripa
18 / 18 / 1
Регистрация: 16.09.2013
Сообщений: 126
25.11.2013, 21:22 #6
C++
1
2
3
file >> str;
file_new <<str;
file_new <<"\n";
или вообще так можно вроде
C++
1
2
file >> str;
file_new <<str<<"\n";
Добавлено через 2 минуты
file открываете как ios::in
file_new как ios::out
ну или соответствующий тип как у вас по моему и сделано
0
cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
25.11.2013, 21:25  [ТС] #7
Цитата Сообщение от Alex_Skripa Посмотреть сообщение
C++
1
2
3
file >> str;
file_new <<str;
file_new <<"\n";
или вообще так можно вроде
C++
1
2
file >> str;
file_new <<str<<"\n";
Добавлено через 2 минуты
file открываете как ios::in
file_new как ios::out
ну или соответствующий тип как у вас по моему и сделано
А как обнаружить пробел?
0
Alex_Skripa
18 / 18 / 1
Регистрация: 16.09.2013
Сообщений: 126
25.11.2013, 21:25 #8
да и цикл задавайте на проверку окончания файла, с проверкой на правильность открытия, тоесть
if (file)
{
while(!file.eof())
{
<тело цикла>
}
}
0
cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
25.11.2013, 21:28  [ТС] #9
С пробелом все ясно, ступил, но мусор остался
0
Alex_Skripa
18 / 18 / 1
Регистрация: 16.09.2013
Сообщений: 126
25.11.2013, 21:30 #10
Цитата Сообщение от cpp_job Посмотреть сообщение
А как обнаружить пробел?
Еще раз) Вот у Вас текстовый файл: парам парам
парам
парампарама
C++
1
file >> str;
данный оператор передаёт строку из файла до пробела, Вы берете эту переменную и записываете во второй файл
C++
1
file_new << str<<"\n"
;
Пробел исчез, перенос появился) Надеюсь понятно?

Добавлено через 1 минуту
Цитата Сообщение от cpp_job Посмотреть сообщение
С пробелом все ясно, ступил, но мусор остался
Мусор где, в каком файле? и в каком режиме файлы открываете? да и слова Русские?
0
cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
25.11.2013, 21:44  [ТС] #11
Цитата Сообщение от Alex_Skripa Посмотреть сообщение
Еще раз) Вот у Вас текстовый файл: парам парам
парам
парампарама
C++
1
file >> str;
данный оператор передаёт строку из файла до пробела, Вы берете эту переменную и записываете во второй файл
C++
1
file_new << str<<"\n"
;
Пробел исчез, перенос появился) Надеюсь понятно?

Добавлено через 1 минуту

Мусор где, в каком файле? и в каком режиме файлы открываете? да и слова Русские?
Открыл в текстовом или надо было в бинарном.
0
Alex_Skripa
18 / 18 / 1
Регистрация: 16.09.2013
Сообщений: 126
25.11.2013, 21:48 #12
напиши код проги...
0
25.11.2013, 21:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 21:48
Привет! Вот еще темы с ответами:

Чтение и запись в файл - C++
Здраствуйте, я в c++ оч плохо разбираюсь, помогите пожалуйсто, мне нужен скрипт который открывал бы фаил, брал из него текст дописывал бы в...

Чтение и запись в файл - C++
#include&lt;iostream&gt; #include&lt;fstream&gt; using namespace std; void main() { setlocale(LC_ALL, &quot;Russian&quot;); int a, b; ...

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

Чтение и запись в файл - C++
Помогите пожалуйста написать программу, которая считывает из текстового файла и записывает в новый файл только строки, содержащие двоичные...


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

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

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