在我的代码中:
scanf("%s", &text);
printf("%s\n", text);
输入:
hi how are you
输出:
hi
而不是
hi how are you
我该怎么做才能解决它?
答案 0 :(得分:3)
查看fgets
fgets()函数最多读取一个 小于字符数 由给定流中的n指定 并将它们存储在字符串中 s。换行在换行时停止 找到字符,在文件末尾或 错误。换行符(如果有的话)是 保留。如果读取任何字符 并且没有错误,'\ 0' 附加字符以结束 字符串。
答案 1 :(得分:1)
我想你正在寻找
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
将读取换行符分隔符。或者,如果您正在使用其他分隔符
ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream);
答案 2 :(得分:1)
使用fgets获取您的输入:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char text[80];
fgets(text, sizeof(text), stdin);
printf("%s\n", text);
}