Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Удалить последний символ- /n из конца файла / 13 сообщений из 13, страница 1 из 1
18.04.2016, 18:41
    #39218528
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
Есть такой код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
                char From[1024];
		char To[1024];
		std::fstream G;
		G.open("100.txt", ios::in);
		while(!G.eof())
		{
		G >> From;
		G >> To;
// Выполняем операции с From и To
                }



А в конце файла G находится /n, то есть перенос на другую строку, поэтому, когда программа доходит до конца файла, она вылетает.

Как можно удалить последний символ из файла 100.txt.
При этом сам файл 100.txt может быть большого размера, поэтому копирование в другой файл крайне нежелательно.

Или как-ннибудь сделать проверку From и To, на отсутствие /n в конце, или же, чтов в этих переменных первым символом идёт печатный символ.

Как будет лучше сделать?
...
Рейтинг: 0 / 0
18.04.2016, 18:42
    #39218530
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
Проблема в том, что в конце From и To не может стоять /n, в моём случае.
...
Рейтинг: 0 / 0
18.04.2016, 18:43
    #39218531
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
ukugyul552465она вылетает.
Вот откуда она вылетает, то место и чини. Нефиг костылями баловаться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.04.2016, 18:54
    #39218535
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
Я-бы предложил обсудить другое. Как добавить символ \n. Более полезное ИМХО дело для Linux конфигов.
Но у автора эта задачка еще впереди.
...
Рейтинг: 0 / 0
18.04.2016, 19:16
    #39218553
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
Пробовал поставить исключение, всё равно вылетает.
...
Рейтинг: 0 / 0
18.04.2016, 20:01
    #39218572
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
ukugyul552465, да-да это печально брат. Исключения бывают такие. Как пули летают.

По сабжу.... может код покажешь.
...
Рейтинг: 0 / 0
19.04.2016, 07:25
    #39218690
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
ukugyul552465Как будет лучше сделать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ifstream G("100.txt", std::ios::in);
    std::string line;                       // забудьте про char[]
    while(std::getline(G, line)) {          // функция getline() автоматом обрубает \r и \n в конце строки
        if (! line.empty()) {               // если строка не пустая
             std::cout << line << ";";      // здесь обрабатываем
        }
    }   
    return 0;
}
...
Рейтинг: 0 / 0
19.04.2016, 12:34
    #39218993
Доктар123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
ukugyul552465Как можно удалить последний символ из файла 100.txt.
При этом сам файл 100.txt может быть большого размера, поэтому копирование в другой файл крайне нежелательно.

Или как-ннибудь сделать проверку From и To, на отсутствие /n в конце, или же, чтов в этих переменных первым символом идёт печатный символ.

Как будет лучше сделать?


Прочитать последний байт
и при необходимости
укороить файл на 1 байт
...
Рейтинг: 0 / 0
21.04.2016, 03:35
    #39220749
Пётр Седов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
ukugyul552465, подправлять текстовый файл, потому что нам неудобно его parse-ить, -- плохая идея. А если файл read-only? (на компакт-диске, например) А если несколько процессов одновременно parse-ят один и тот же файл?

ukugyul552465Как будет лучше сделать?Приведите простой пример, что надо parse-ить, и какой должен быть результат. Тогда посоветуют что-нибудь конкретное.
...
Рейтинг: 0 / 0
21.04.2016, 11:37
    #39221029
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
На всякий случай я воспроизвожу пожелание автора. Подзабыли мать его пятак...

При этом сам файл 100.txt может быть большого размера, поэтому копирование в другой файл крайне нежелательно.
...
Рейтинг: 0 / 0
21.04.2016, 15:52
    #39221404
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
Проблему решил.
Переписал пару функций с использованием char на string, сделал проверку при чтении из файла.
...
Рейтинг: 0 / 0
21.04.2016, 16:08
    #39221428
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
ukugyul552465, дык... без сорца - не вариант. Не верим! Требуем пруфа.
...
Рейтинг: 0 / 0
22.04.2016, 18:42
    #39222804
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить последний символ- /n из конца файла
Так суть в том, что последний символ '/n' остался, просто теперь он не вызывает вылета программы, так как встроена проверка на этот случай.
А с char такое дело не прокатывало.
А вообще идёт считывание из файла циклом, в две переменные string(каждый проход - перезапись), которые раньше были char.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Удалить последний символ- /n из конца файла / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]