From 3fa4fec040079f6489349556a97b238f2b002d6b Mon Sep 17 00:00:00 2001 From: Ulrich Bauer Date: Fri, 5 Aug 2016 15:05:52 +0200 Subject: allow reading from stdin --- ripser.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/ripser.cpp b/ripser.cpp index 9b74b8f..53840cf 100644 --- a/ripser.cpp +++ b/ripser.cpp @@ -687,7 +687,7 @@ void compute_pairs(std::vector& columns_to_reduce, #endif } -template T read(std::ifstream& s) { +template T read(std::istream& s) { T result; s.read(reinterpret_cast(&result), sizeof(T)); return result; // on little endian: boost::endian::little_to_native(result); @@ -713,8 +713,6 @@ void print_usage_and_exit(int exit_code) { int main(int argc, char** argv) { - if (argc < 2) print_usage_and_exit(-1); - const char* filename = nullptr; index_t dim_max = 1; @@ -752,12 +750,18 @@ int main(int argc, char** argv) { filename = argv[i]; } } + + std::istream* input_stream_ptr = &std::cin; + std::ifstream input_file(filename); + if (filename) { + if (input_file.fail()) { + std::cerr << "couldn't open file " << filename << std::endl; + exit(-1); + } + input_stream_ptr = &input_file; + } + std::istream& input_stream = *input_stream_ptr; - std::ifstream input_stream(filename); - if (input_stream.fail()) { - std::cerr << "couldn't open file " << filename << std::endl; - exit(-1); - } #ifdef FILE_FORMAT_POINT_CLOUD -- cgit v1.2.3