我在练习练习时遇到一些问题。 问题是:我需要从用户那里读取一个字符串,但如果他只键入一个空格,我需要打印一个空格。理论上这没关系。 但是,当我在程序运行时键入空格时,它不会将其理解为字符串,它一直在等我输入其他内容。
我正在使用scanf("%[^\n]", string_name_here);
感谢您的帮助,祝您度过愉快的一天! O / 抱歉我的英语不好,我希望你能理解这一点:)
答案 0 :(得分:1)
使用char *fgets(char *str, int n, FILE *stream)
将成为您的一天。
据男人说:
fgets()从流和中读取最多一个小于大小的字符 将它们存储到s指向的缓冲区中。读后停止了 EOF或换行符。如果读取换行符,则将其存储到缓冲区中。 终止空字节(' \ 0')存储在最后一个字符之后 缓冲区。
示例程序
#include <stdio.h>
#define MAXSTR 21
int main(void)
{
char my_str[MAXSTR] = {'\0'};
fgets(my_str, MAXSTR, stdin);
return 0;
}
输入:
Claudio Cortese
输出
Claudio Cortese