Всем доброго времени суток и с наступившим, форумчане! При считывании текста из файла, не ставятся знаки абзацев, и как итог - все пишется в строку. Смотрится не очень красиво, решил добавлять endl после каждой точки. Но вот вопрос, как найти эту самую точку? Пытался через функцию find, но ничего хорошего не вышло. Выручайте
Прилагаю код:
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main()
{
setlocale(0, "");
ifstream file("Line.txt");
if (!file)
{
float clo;
cout << "Ошибка открытия файла! Для продолжения нажмите любую клавишу...";
cin >> clo;
return 1;
}
int i = 0;
static char buff[1024][1024];
while (!file.eof())
{
file >> buff[i];
cout << buff[i] << " ";
++i;
}
file.close();
system("pause > 1");
return 0;
}
P.S. Считывал по словам, а не через getline, т.к. требуется работа с каждым словом.
P.S.S. И еще вопрос - как записать результат в выходной файл, при этом имя файла должен задать пользователь?
- Нерациональное использование памяти. Большинство слов не превышают размер 10 символов. Ты же выделяешь под каждое слово 1024 байт. Таким образом большая часть зарезервированной памяти будет оставаться неиспользованной. Если нужно держать в памяти весь текст, просто возьми размер файла, добавь 1 терминирующего нуля, динамически выдели массив такого размера и одним обращением вычитай всё содержимое файла в него.
- Если уж на то пошло, не понятно вообще зачем держать в памяти весь текст. Судя по тому, что ты его просто хочешь как-то обработать и потом сохранить в новый файл, достаточно итеративного построчного вычитывания-обработки-сохранения. Это ещё уменьшит расход памяти.
- Найти запятую можно либо циклом по символам слова, либо с помощью std::find. Если пробовал, но ничего не получилось, то нужны подробности, что именно не получилось.
- Записать в файл можно с помощью ofstream. Работа с ним один в один, как с ifstream, который у тебя уже есть в коде.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.