fgets在换行后包含文本

时间:2015-04-09 01:00:06

标签: c input format fgets getline

我想创建一个字符数组并将整个输入存储在其中(即使输入在某些时候包含“\ 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打开/关闭/读取功能,因为它是从键盘输入的。

1 个答案:

答案 0 :(得分:0)

虽然fgets()旨在读取'\n'字符或指定的字节数,但您可以使用fread() 1 ,就像这样< / p>

size_t count = fread(vhod, 1, sizeof(vhod), stdin);

和count将包含读取的项目数,在这种情况下,与您提供大小1(即sizeof(char))后的字节数相同。

但是请注意,如果要使用任何假定终止'\0'的函数,则必须非常小心地添加终止'\0'


1 阅读手册以获取更多信息。

相关问题