Программа не запускается без аргументов - C (СИ)
Формулировка задачи:
Доброго времени суток!
Программа не хочет работать без аргументов. При запуске сразу завершается и Windows выводит сообщение, что проект перестал работать. Пожалуйста, укажите на ошибку. Спасибо.
#include <stdio.h> #include <stdlib.h> #include <ctype.h> int my_strcmp(char *first, char *second) { for( ; *first == *second; ++first, ++second ) if( *first == 0 ) return 0; return *first < *second ? -1 : 1; } int main(int argc, char* argv[]) { int x = 1; int len; char myChar; char in[255]; char out[255]; char ch = '\0'; if (my_strcmp(argv[x], "-x") == 0) //char to hex { fgets(in, sizeof(in), stdin); len = strlen(in); if(in[len-1]=='\n') in[--len] = '\0'; for(int i = 0; i<len; i++) { sprintf(out+i*2, "%x", in[i]); } printf("%s\n", out); } else if(my_strcmp(argv[x], "-r") == 0) // hex to char { int i = 0; char buff[3] = {0}; while ((myChar = getchar()) != EOF) { buff[i++] = myChar; if(i == 2) { i = 0; myChar = strtol(buff, NULL, 16); putchar(myChar); } } } else if(my_strcmp(argv[x], "-S") == 0) //bin to char { fgets(in, sizeof(in), stdin); myChar = strtol(in, 0, 2); printf("%c\n", myChar ); } else// no one arguments { fgets(in, sizeof(in), stdin); len = strlen(in); for(int y = 0; isprint(in[y]); y++)//char to hex { if(in[len-1]=='\n') in[--len] = '\0'; for(int i = 0; i<len; i++) { sprintf(out+i*2, "%x", in[i]); } printf("%c %s", ch, out); } } }
Решение задачи: «Программа не запускается без аргументов»
textual
Листинг программы
if (argc > 1) { // были введены аргументы тут ваш код для работы с ними } else { // без аргументов }
Объяснение кода листинга программы
- if (argc > 1) - проверка наличия аргументов командной строки (argc - количество аргументов, 1 - количество обязательных аргументов для запуска программы)
- // были введены аргументы - комментарий
- // ваш код для работы с ними - здесь должен быть код, который будет выполняться при наличии аргументов
- else - альтернативный блок кода для случая, если аргументы не были введены
- // без аргументов - комментарий
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д