扫描包含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 #include int main(void) { char text[80]; fgets(text, sizeof(text), stdin); printf("%s\n", text); }