Чтение символов из буфера

Я сканирую строки как ввод, я использую getline, чтобы сделать это, например

char *lajna=NULL;
size_t dlzka=0;
getline(&lajna,&dlzka,stdin);

и я хочу прочитать первый символ с помощью fgetc, я пытался сделать

test=fgetc(lajna);

но это выдает ошибку

невозможно преобразовать 'char **' в 'FILE* {aka _IO_FILE*}' для аргумента '1' в 'int fgetc(FILE*)' ciarka=fgetc(&lajna);

Я проверил это и ничего не нашел, как читать символы из буфера, как это, что это правильный путь?

1 ответ

Смотрите прототип fgetc():

   int fgetc(FILE *stream);

Требуется FILE* в качестве аргумента, но вы передаете char*, Отсюда и ошибка. (Сообщение об ошибке говорит о том, что на самом деле это так: test=fgetc(&lajna);)

Читать символы из lajnaВам не нужно использовать какую-либо функцию или специальный механизм. Вы можете просто внести в него индекс:

char ch = lajna[0]; // first char 

и так далее.

Или вы можете использовать цикл для чтения всех символов.

for(i=0; lajna[i]; i++) {  //until the null terminator '\0'
   char ch = lajna[i];
}
Другие вопросы по тегам