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

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

Восстановить пароль Регистрация
 
cpp_job
 Аватар для cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
25.11.2013, 21:03     Чтение и запись #1
Здравствуйте! Писал программку по чтению одного файла и записи данных первого во второй с измененным содержимым. Смысл таков - есть первый файл например
абаба лоло тлошо выпа гыба
, а во второй записываем тоже самое только пробел заменяем на перенос на новую строку. Так как при чтение файла оператором >>, пробельные символы опускаются, то я побывал читать в бинарном режиме, но все равно ничего толкового не нашел. Потом использовал 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".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 21:03     Чтение и запись
Посмотрите здесь:

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

Добавлено через 2 минуты
Да и вообще тут гораздо все проще из файла читаешь >> сходу в файл записываешь только файл<<переменная;
файл<<"\n" и все, так как >> читает строку до первого пробела.
cpp_job
 Аватар для cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
25.11.2013, 21:16  [ТС]     Чтение и запись #3
Записывает мусор
пробую
Alex_Skripa
17 / 17 / 1
Регистрация: 16.09.2013
Сообщений: 126
25.11.2013, 21:18     Чтение и запись #4
Цитата Сообщение от cpp_job Посмотреть сообщение
Записывает мусор
пробую
Поясните пожалуйста) не понял комментария.
cpp_job
 Аватар для cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
25.11.2013, 21:20  [ТС]     Чтение и запись #5
Цитата Сообщение от Alex_Skripa Посмотреть сообщение
Поясните пожалуйста) не понял комментария.
Ну делаю то что вы сказали.
Alex_Skripa
17 / 17 / 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
ну или соответствующий тип как у вас по моему и сделано
cpp_job
 Аватар для 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
ну или соответствующий тип как у вас по моему и сделано
А как обнаружить пробел?
Alex_Skripa
17 / 17 / 1
Регистрация: 16.09.2013
Сообщений: 126
25.11.2013, 21:25     Чтение и запись #8
да и цикл задавайте на проверку окончания файла, с проверкой на правильность открытия, тоесть
if (file)
{
while(!file.eof())
{
<тело цикла>
}
}
cpp_job
 Аватар для cpp_job
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
25.11.2013, 21:28  [ТС]     Чтение и запись #9
С пробелом все ясно, ступил, но мусор остался
Alex_Skripa
17 / 17 / 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 Посмотреть сообщение
С пробелом все ясно, ступил, но мусор остался
Мусор где, в каком файле? и в каком режиме файлы открываете? да и слова Русские?
cpp_job
 Аватар для 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 минуту

Мусор где, в каком файле? и в каком режиме файлы открываете? да и слова Русские?
Открыл в текстовом или надо было в бинарном.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 21:48     Чтение и запись
Еще ссылки по теме:

запись и чтение с файла C++
[Файлы] Запись-чтение-запись. Почему не прокатывает? C++
Чтение и запись из файла C++

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

Или воспользуйтесь поиском по форуму:
Alex_Skripa
17 / 17 / 1
Регистрация: 16.09.2013
Сообщений: 126
25.11.2013, 21:48     Чтение и запись #12
напиши код проги...
Yandex
Объявления
25.11.2013, 21:48     Чтение и запись
Ответ Создать тему
Опции темы

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