#c #fgets
Вопрос:
Итак, у меня есть этот код:
printf("S: Searchn"); printf("A: Addn"); printf("D: Deleten"); printf("Q: Quitn"); printf("nYour choice: "); while (fgets(line, MAXLINE, stdin) amp;amp; once == 1) { printf("Option: %sn", line); once ; }
И вот тут — то я и начинаю бороться:
if (line == 's') { printf("option s function here"); } else if (line == 'a') { printf("option a function here..."); } /* and so on */
Это не работает, и я пытался это исправить, но ничего из того, что я пробовал, не сработало. Как я могу написать этот последний фрагмент кода, чтобы иметь возможность выбрать опцию из ввода fgets?
Комментарии:
1.
if (line[0] == 's')
проверит, является ли первый символ строки's'
. Возможно, вам также захочется принять прописные буквы, так как в приглашении отображаются параметры в верхнем регистре. В этом случаеif (line[0] == 's' || line[0] == 'S')
допускается верхний или нижний регистр.2. Что вы хотите, чтобы ваш код делал, если кто-то вводит «глупо» вместо «s»?
3. @JeffHolt Я сейчас не думаю об ошибках, я просто предполагаю, что ввод всегда будет правильным
4. @user3386109 если я попытаюсь распечатать строку[0], в ней будет указано ошибка сегментации
5. Вы захотите показать код печати, иначе только образованное предположение расскажет вам, почему ваш код вызывает сигсегвариант.