Используйте 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);
}
}