Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // cat.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <conio.h>
- #include <cstdlib>
- #include <fstream>
- #include <iomanip>
- //define errors
- #define no_such_file "No such file"
- #define too_many_args "Too many arguments"
- #define not_enough_args "Not enough arguments"
- //
- const int string_size = 256; // Размер одной строки
- FILE *f;
- void file_check(char *); // Функция проверки файла
- void help(); // Вывод помощи
- void args_check(int); // Проверка кол-ва аргументов
- void file_read(char *); // Чтение файла
- int main(int argc, char* argv[])
- {
- args_check(argc); // Передаём в функцию кол-во аргументов для проверки
- char *filename = argv[1]; // Ассоциируем переменную с названием введенного файла
- file_check(filename); // Передадим название файла в функцию для проверки на существование
- file_read(filename); // Прочитаем файл, передав название в функцию
- return 0;
- }
- void help() {
- std::cout << std::endl << "***** Help Box ******";
- std::cout << std::endl << "cat - concatenate files and print on the standard output.";
- std::cout << std::endl << "You should enter filename after *cat*.";
- std::cout << std::endl << "For example:";
- std::cout << std::endl << "cat file.txt";
- std::cout << std::endl << "*********************";
- }
- void args_check(int argc) {
- // Если аргументов слишком мало или много, то выводим нужное сообщение, хелп-бокс и аварийно завершим программу
- if (argc < 2) { std::cout << std::endl << not_enough_args; help(); exit(1); }
- else if (argc > 2) { std::cout << std::endl << too_many_args; help(); exit(1); }
- }
- void file_check(char *filename) {
- //std::cout << std::endl << filename; Проверка на ввод имени файла. Не нужна в релиз-версии
- FILE *f = fopen(filename, "r"); // Откроем файл для чтения
- // Проверим существование файла.
- if (f == NULL) { // Если файла нет - выведем сообщение об этом и аварийно завершим программу
- system("cls");
- std::cout << no_such_file << ": " << filename << std::endl;
- system("pause");
- exit(1);
- }
- else { fclose(f); } // Если файл открылся, то просто закроем его.
- }
- void file_read(char *filename) {
- char output[string_size] = { "" };
- std::ifstream in1(filename); //Открыли файл для чтения
- while (!in1.eof()) //Читаем информацию, пока не конец файла
- {
- in1.getline(output, string_size); //построчно считаем информацию
- std::cout << output << std::endl; //вывод считанных строк на экран
- }
- in1.close(); //Закрыли открытый файл
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement