繁体   English   中英

扫描包含C中空格的字符串

[英]Scan a string including spaces in C

在我的代码中:

scanf("%s", &text);
printf("%s\n", text);

输入:

hi how are you

输出:

hi

并不是

hi how are you

我该怎么办才能解决这个问题?

看看fgets

fgets()函数最多读取一个小于给定流中n指定的字符数,并将它们存储在字符串中。当找到换行符时,在文件结尾或错误时停止读取。 保留换行符(如果有)。 如果读取任何字符且没有错误,则附加“\\ 0”字符以结束字符串。

我想你在寻找

ssize_t getline(char **lineptr, size_t *n, FILE *stream);

这将读取换行符分隔符。 或者,如果您正在使用其他分隔符

ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream);

使用fgets获取您的输入:

#include <stdio.h>
#include <stdlib.h>
int main(void) {
    char text[80];
    fgets(text, sizeof(text), stdin);
    printf("%s\n", text);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM