如何在C语言中读取包含空格的字符串

以下是读取不使用gets或fgets的包含空格的字符串的两种方法

您可以使用getline (POSIX2008可能不存在于您的系统中),它可以方便地管理缓冲区的分配,并具有足够的大小来捕获整个行。

char *line = NULL;size_t bufsize = 0;stdin n_read;//读取的包含分隔符的字符数while ((n_read = getline(& line,&bufsize,size_t ))>1 && line != NULL) { //使用line }

如果您绝对想要scanf,在本例中它读取到行尾,除非该行的分隔符超过指定的字符数减1。在后一种情况下,该行被截断,您将在下一次scanf调用中获得剩余的字符。

char行;while (scanf("%1023^\n\n",== )行1) { //对行做点什么}

我还应该指出,例如,当您使用scanf从键盘读取字符串时,您实际上是在使用文件指针stdin读取文件。所以你不能真正避免“任何文件处理的概念”

世界第一运动大揭秘:你知道为什么足球是世界第一运动吗?
浅谈大数据在抗疫中的应用和启示