如何从 stdin 获取在 C 中具有前导白色 space 的字符串输入?
How to get a string input from stdin that has leading white space in C?
需要一个让输入字符串以 spaces 开头的解决方案吗?
我知道一种在输入中包含 space 的方法
scanf("%[^\n]s", s);
但它仅适用于 space 单词之间。
我需要一个以 spaces 开头的字符串的解决方案。
我还需要变量
中的起始 spaces
要获得 行 的用户输入,请使用 fgets()
。
#define S_MAX_LENGTH
char s[S_MAX_LENGTH + 2];
if (fgets(s, sizeof s, stdin)) {
s[strcspn(s, "\n")] = '[=10=]'; // Should code want to lop off a potential trailing \n
....
不要使用 scanf("%[^\n]s", s);
或 gets(s);
。他们遭受缓冲区溢出和其他问题。
需要一个让输入字符串以 spaces 开头的解决方案吗?
我知道一种在输入中包含 space 的方法
scanf("%[^\n]s", s);
但它仅适用于 space 单词之间。 我需要一个以 spaces 开头的字符串的解决方案。 我还需要变量
中的起始 spaces要获得 行 的用户输入,请使用 fgets()
。
#define S_MAX_LENGTH
char s[S_MAX_LENGTH + 2];
if (fgets(s, sizeof s, stdin)) {
s[strcspn(s, "\n")] = '[=10=]'; // Should code want to lop off a potential trailing \n
....
不要使用 scanf("%[^\n]s", s);
或 gets(s);
。他们遭受缓冲区溢出和其他问题。