Чтение символов из буфера
Я сканирую строки как ввод, я использую 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];
}