Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
zaki_hat
0 / 0 / 1
Регистрация: 20.12.2014
Сообщений: 9
#1

Удаление символа перевода строки из самого конца файла - C++

23.06.2015, 02:23. Просмотров 768. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
void SaveToFile()
{
    ofstream out;
    out.open("Directory.txt");
    Directory.Print(size, PrintEl, out);
    long pos = out.tellp();
    out.seekp(pos-1);
    out << "\0";
    out.close();
}
Доброго времени суток, наткнулся на проблему:
после записи базы в файл, я не могу считать её корректно из-за символа перевода строки, который пишется в самый конец файла
Пытаюсь его удалить сразу после записи базы
C++
1
2
3
long pos = out.tellp();
out.seekp(pos-1);
out << "\0";
Но ничего не выходит
Помогите пожалуйста
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2015, 02:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удаление символа перевода строки из самого конца файла (C++):

Удаление строки из файла\либо удаление самого файла.
День добрый, вот функция(используемые переменные объявленны ранее): void...

Написать программу удаления из текстового файла символов перевода строки ‘\n’ и перевода каретки ‘\r’
Здравствуйте,помогите написать программу на подобии этой,только не подсчета,а...

Поиск символа с конца строки
Здравствуйте.. Как найти символ с конца строки ? Например : предложение -...

Скопировать с конца строки std::string четыре символа в другую строку
как функцией можно скопировать с конца строки 4 символа в другую? string a =...

Удаление знака из конца строки.
Здравствуйте, требуется ваша помощь. Есть программа, которая считывает...

Удаление символа строки
Здравствуйте а есть такая функция которая удаляет из строки выбранный символ и...

6
Fulcrum_013
Заблокирован
23.06.2015, 03:10 #2
Цитата Сообщение от zaki_hat Посмотреть сообщение
Но ничего не выходит
Помогите пожалуйста
Туда не ноль записывать надо а просто обрезать файл. Сомнительно правдо чтобы эта редиска под названием stl это умела. Если файл текстовый попробуй не 0 а EOF записать (0x27).
1
lss
926 / 855 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
23.06.2015, 03:31 #3
Цитата Сообщение от zaki_hat Посмотреть сообщение
после записи базы в файл, я не могу считать её корректно из-за символа перевода строки, который пишется в самый конец файла
Покажи, как и что пишешь, как читаешь.

Добавлено через 1 минуту
Цитата Сообщение от zaki_hat Посмотреть сообщение
Пытаюсь его удалить сразу после записи базы
В этом смысла нет.

Добавлено через 8 минут
Обычно, проблемы с последним чтением и '\n', решаются помещением чтения первого поля класса в параметры while()(если, конечно, текстовые методы чтения используются).
1
zaki_hat
0 / 0 / 1
Регистрация: 20.12.2014
Сообщений: 9
23.06.2015, 03:46  [ТС] #4
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
попробуй не 0 а EOF записать (0x27).
Не помогает


Цитата Сообщение от lss Посмотреть сообщение
Покажи, как и что пишешь, как читаешь.
Тут много кода, ни разу не встречал столько на форуме и считаю не целесообразным его заливать
(Даже куски, в проекте всё связано)

Считываю вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void LoadFromFile()
{
    ifstream in;
    in.open("Directory.txt");
    int adress;
    while (!in.eof())
    {
        Inf *el = new Inf;
        in >> el->key;
        in >> el->name;
        in >> el->mas;
        in >> adress;
        Directory.Insert(el);
    } 
    in.close();
}
0
Fulcrum_013
Заблокирован
23.06.2015, 03:50 #5
Считываю вот так
А записываешь как?
1
lss
926 / 855 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
23.06.2015, 03:58 #6
Лучший ответ Сообщение было отмечено zaki_hat как решение

Решение

Цитата Сообщение от zaki_hat Посмотреть сообщение
Считываю вот так
Вот так попробуй, обычно помогает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void LoadFromFile()
{
    ifstream in;
    in.open("Directory.txt");
    int adress;
    while (true)
    {
        Inf *el = new Inf;
        if (in >> el->key)
        {   
             in >> el->name;
             in >> el->mas;
             n >> adress;
             Directory.Insert(el);
        }
        else
        {
             delete el;
             break;
         }
    } 
    in.close();
}
1
zaki_hat
0 / 0 / 1
Регистрация: 20.12.2014
Сообщений: 9
23.06.2015, 04:02  [ТС] #7
Цитата Сообщение от lss Посмотреть сообщение
Вот так попробуй, обычно помогает:
Да, отлично
Всё работает
Спасибо всем
0
23.06.2015, 04:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2015, 04:02
Привет! Вот еще темы с решениями:

Удаление символа из строки
Как удалить символ (скобку) в заданной символьной строке?

Удаление символа из строки
Подскажите пожалуйста где я затупил ) Программа уделяет нужный символ, но после...

Удаление символа из строки
всем привет как можно удалить символ из строки? посоветовали воспользоваться...

Удаление из строки символа, введенного пользователем
Нужен код чтобы программа удаляла из строки символ, введенный пользователем и...


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

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

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