Source File: sort.cpp

#include <fmt/core.h>
#include <iostream>
#include <unistd.h>
#include <fstream>
#include <vector>
#include <algorithm>

void sort_file(std::istream& in) {
  std::string line;
  std::vector<std::string> lines;

  while(in) {
    getline(in, line);
    lines.emplace_back(line);
  }

  std::sort(lines.begin(), lines.end());

  for(auto& line : lines) {
    fmt::println("{}", line);
  }
}


int main(int argc, char* argv[]) {
  if(argc > 1) {
    for(int i = 1; i < argc; i++) {
      std::ifstream in_file{argv[i]};
      sort_file(in_file);
    }
  } else {
    sort_file(std::cin);
  }
}