Что происходит с моей функцией переключения? это выглядит как этотЧто происходит с моей функцией переключения?
void ss(int argc, char *argv[])
{
int side_length = 200;
double red = 0.0;
double green = 0.0;
double blue = 0.0;
for (int i = 1; i <= argc; i++) {
printf("%s\n", argv[i]);
if (*argv[i] == '-'){
switch (*++argv[i]) {
case 'r':
red = sin(0.2*atof(argv[i++]));
printf("argv: %f\n", sin(0.2*atof(argv[i++])));
printf("red: %f\n", red);
break;
}
}
}
}
я планирую добавить больше случаев переключения позже, но сейчас я сосредоточен на красный, так что я могу просто повторить его. Похоже, проблема в том, что она просто не сохраняет значение, которое я хочу, чтобы оно было красным, оно возвращает значение в другой инструкции printf просто отлично.
Редактирование: С тех пор я использовал оба для (int i = 1; i < argc; i ++) и для (int i = 1; argv [i]! = '\ 0'; i ++) и ни один из них не работал. Все еще ищут ответ.
Похож у вас есть слишком много Преинкремента и пост-инкремент операторов. – user3386109
@ user3386109 Можете ли вы уточнить? Извините, я новичок в C. – jazaniac
У вашего кода есть несколько проблем. On is, что ваш цикл for работает до далекого ... 'for (int i = 1; i <= argc; i ++)' должно быть 'for (int i = 1; i
cwschmidt