我想创建一个字符数组并将整个输入存储在其中(即使输入在某些时候包含“\ n”。当我使用时:
char vhod[50];
fgets(vhod, sizeof(vhod), stdin);
它将输入UNTIL存储在第一个换行符中。如何获取此数组中的整个文本(包括新行后的文本)。 例: 如果我的文字是:
Hello I need new keyboard.
This is not good.
我的数组只会包含"Hello I need new keyboard."
。我希望能够阅读所有内容,直到输入a<输入-1
我不能使用FILE打开/关闭/读取功能,因为它是从键盘输入的。
答案 0 :(得分:0)
虽然fgets()
旨在读取'\n'
字符或指定的字节数,但您可以使用fread()
1 ,就像这样< / p>
size_t count = fread(vhod, 1, sizeof(vhod), stdin);
和count将包含读取的项目数,在这种情况下,与您提供大小1
(即sizeof(char)
)后的字节数相同。
但是请注意,如果要使用任何假定终止'\0'
的函数,则必须非常小心地添加终止'\0'
。
1 阅读手册以获取更多信息。