Используйте read(), чтобы получить пользовательский ввод вместо scanf

Я пытаюсь использовать функцию read() для ввода данных пользователем, но единственное, что я могу найти в документации, это чтение файлов, это на языке Linux c. Я также хочу использовать write() для отображения чего-либо на консоли.

У кого-нибудь есть идеи, как это сделать?

2 ответа

но единственное, что я могу найти в документации, это чтение файлов

Не волнуйтесь, стандартный ввод - это файл.

char buf[128];
read(STDIN_FILENO, buf, sizeof(buf));

Я также хочу использовать write() для отображения чего-либо на консоли.

Позвольте мне не повторяться.

const char *s = "Hello World!\n";
write(STDOUT_FILENO, s, strlen(s));

Это должно дать вам представление о том, как это сделать (0 - стандартный, 1 - стандартный)

#include <unistd.h>
#include <string.h>
int main () {
  char buf[100];
  char *msg="you wrote:";
  while (1) {
    int n;
    n=read (0, buf, sizeof(buf));
    write (1, msg, strlen(msg));
    write (1, buf, n);
  }
}
Другие вопросы по тегам