Update sk1/main.c
This commit is contained in:
		
							parent
							
								
									f0e9864e84
								
							
						
					
					
						commit
						e0381dccd5
					
				
							
								
								
									
										42
									
								
								sk1/main.c
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								sk1/main.c
									
									
									
									
									
								
							| @ -1,9 +1,11 @@ | ||||
| #include <assert.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include "compressor.h" | ||||
| 
 | ||||
| // Функція для виведення допомоги
 | ||||
| #define BUFSIZE 1024 | ||||
| 
 | ||||
| void print_help() { | ||||
|     printf("Usage:\n"); | ||||
|     printf("  ./compressor -c1 infile outfile   Compress using algorithm 1 (Huffman)\n"); | ||||
| @ -13,65 +15,41 @@ void print_help() { | ||||
|     printf("  ./compressor -h                   Show this help message\n"); | ||||
| } | ||||
| 
 | ||||
| // Функція для перевірки валідності аргументів
 | ||||
| int check_arguments(int argc, char* argv[]) { | ||||
|     // Перевіряємо наявність достатньої кількості аргументів
 | ||||
| int main(int argc, char* argv[]) { | ||||
|     if (argc < 2) { | ||||
|         fprintf(stderr, "Error: Missing required arguments.\n"); | ||||
|         print_help(); | ||||
|         return 0; | ||||
|         return 1; | ||||
|     } | ||||
| 
 | ||||
|     // Якщо користувач запитав допомогу, виводимо її
 | ||||
|     if (strcmp(argv[1], "-h") == 0) { | ||||
|         print_help(); | ||||
|         return 0; | ||||
|     } | ||||
| 
 | ||||
|     // Перевіряємо, чи правильно передано 3 аргументи (режим, вхідний файл, вихідний файл)
 | ||||
|     // Ensure correct number of arguments
 | ||||
|     if (argc != 4) { | ||||
|         fprintf(stderr, "Error: Invalid number of arguments.\n"); | ||||
|         print_help(); | ||||
|         return 0; | ||||
|     } | ||||
| 
 | ||||
|     // Перевірка на правильний режим стиснення чи розпакування
 | ||||
|     const char* mode = argv[1]; | ||||
|     if (strcmp(mode, "-c1") != 0 && strcmp(mode, "-d1") != 0 && strcmp(mode, "-c2") != 0 && strcmp(mode, "-d2") != 0) { | ||||
|         fprintf(stderr, "Error: Unknown mode '%s'.\n", mode); | ||||
|         print_help(); | ||||
|         return 0; | ||||
|     } | ||||
| 
 | ||||
|     return 1; // Аргументи правильні
 | ||||
| } | ||||
| 
 | ||||
| int main(int argc, char* argv[]) { | ||||
|     // Перевіряємо, чи коректні аргументи
 | ||||
|     if (!check_arguments(argc, argv)) { | ||||
|         return 1; | ||||
|     } | ||||
| 
 | ||||
|     // Окремо отримуємо значення аргументів
 | ||||
|     const char* mode = argv[1]; | ||||
|     const char* infile = argv[2]; | ||||
|     const char* outfile = argv[3]; | ||||
| 
 | ||||
|     // Вибір алгоритму стиснення або розпакування
 | ||||
|     if (strcmp(mode, "-c1") == 0) { | ||||
|         printf("Compressing using algorithm 1 (Huffman)...\n"); | ||||
|         compress_1(infile, outfile); | ||||
|     } else if (strcmp(mode, "-d1") == 0) { | ||||
|         printf("Decompressing using algorithm 1 (Huffman)...\n"); | ||||
|         decompress_1(infile, outfile); | ||||
|     } else if (strcmp(mode, "-c2") == 0) { | ||||
|         printf("Compressing using algorithm 2 (RLE)...\n"); | ||||
|         compress_2(infile, outfile); | ||||
|     } else if (strcmp(mode, "-d2") == 0) { | ||||
|         printf("Decompressing using algorithm 2 (RLE)...\n"); | ||||
|         decompress_2(infile, outfile); | ||||
|     } else { | ||||
|         fprintf(stderr, "Error: Unknown mode '%s'.\n", mode); | ||||
|         print_help(); | ||||
|         return 1; | ||||
|     } | ||||
| 
 | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user