Я хочу сделать массив символов и хранить весь вход в него (даже если вход содержит «\ п» в какой-то момент, когда я использую:.fgets включить текст после символа новой строки
char vhod[50];
fgets(vhod, sizeof(vhod), stdin);
его магазины вход пОКА первый символ новой строки Как получить весь текст в этом массиве (в том числе текста после новой строки) примера:.. , если мой текст не является:
Hello I need new keyboard.
This is not good.
моего массив будет содержать только "Hello I need new keyboard."
Я хочу быть в состоянии читать все до конца ввода a < input-1 Я не могу использовать функции открытия/закрытия/чтения FILE, так как он вводится с клавиатуры.
Что заставляет вас думать, что вы не можете использовать 'read()', когда вход с клавиатуры? – Barmar
Вам не нужно вызывать 'open()', поскольку стандартный ввод уже открыт. – Barmar
Если вы используете стандартную библиотеку ввода-вывода, то 'fread()' является очевидным выбором, а не функцией дескриптора файла 'read()'. Конечно, вам нужно быть осторожным, чтобы не переполнять буфер; 50 символов довольно малы. Или вы можете использовать 'fgets()' постепенно; или вы можете рассмотреть функцию POSIX ['getdelim()'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/getdelim.html) (близкий родственник 'getline()'), передавая символ такой как '' \ 0'' в качестве «разделителя строк», поэтому он считывает все до нулевого байта или EOF. –