在我的代码中:
我该怎么做才能修复它?
scanf("%s", &text);
printf("%s\n", text);
输入:
hi how are you
输出:
hi
而不是
hi how are you
我该怎么做才能修复它?
scanf("%s", &text);
printf("%s\n", text);
输入:
hi how are you
输出:
hi
而不是
hi how are you
请查看fgets
fgets()函数从给定的流中最多读取n个字符减1,并将它们存储在字符串s中。当发现换行符、文件末尾或出错时,阅读停止。如果有换行符,则保留该字符。如果读取任何字符并且没有错误,则添加`\ 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);
}