Кросс-платформенный файл существует и читается на C ++ - PullRequest
1 голос
/ 27 июня 2010

Как я могу написать две простые кроссплатформенные (Linux, Windows) функции для чтения текстового файла и определить, существует ли какой-либо файл?

Я не хочу использовать для этого большую библиотеку, такую ​​как Boost.IO. Это очень маленький плагин для некоторого программного обеспечения, и я не думаю, что это необходимо.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 27 июня 2010

Стандартная библиотека должна быть достаточной.access сообщит вам, существует ли файл, и (если он есть) вы можете читать с обычным std::ifstream.

0 голосов
/ 27 июня 2010
// portable way to get file size; returns -1 on failure; 
// if file size is huge, try system-dependent call instead
std::ifstream::pos_type filesize(const char* filename)
{
    std::ifstream in(filename, std::ifstream::in | std::ifstream::binary);
    in.seekg(0, std::ifstream::end)
    return in.tellg(); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...