Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从在C中有前导空格的stdin中获取字符串输入?_C_String_Input_Whitespace_Stdin - Fatal编程技术网

如何从在C中有前导空格的stdin中获取字符串输入?

如何从在C中有前导空格的stdin中获取字符串输入?,c,string,input,whitespace,stdin,C,String,Input,Whitespace,Stdin,需要一个以空格开头的输入字符串的解决方案吗 我知道一种在输入中包含空格的方法 scanf("%[^\n]s", s); 但它只适用于单词之间的空格。 我需要一个以空格开头的字符串的解决方案。 我还需要变量中的起始空格要获得一行用户输入,请使用fgets() 不要使用scanf(“%[^\n]s”,s)或获取。他们遇到缓冲区溢出和其他问题。我可以问一下为什么字符串中必须包含前导空格吗?@RobertSsupportsMonicaCellio实际上是为了在线判断中的问题解决。@user31210

需要一个以空格开头的输入字符串的解决方案吗

我知道一种在输入中包含空格的方法

scanf("%[^\n]s", s);
但它只适用于单词之间的空格。 我需要一个以空格开头的字符串的解决方案。 我还需要变量中的起始空格

要获得一行用户输入,请使用
fgets()



不要使用scanf(“%[^\n]s”,s)
获取。他们遇到缓冲区溢出和其他问题。

我可以问一下为什么字符串中必须包含前导空格吗?@RobertSsupportsMonicaCellio实际上是为了在线判断中的问题解决。@user3121023
scanf(“%[^\n]”,s)此项忽略起始空间:/@AzizAhmed
scanf(“%[^\n]”,s)不忽略起始空间。相反,使用先前的
scanf(“%[^\n]”,s)
stdin
scanf(“%[^\n]”,s)中留下
'\n'
退出,原因是
'\n'
。不要悲伤。在您知道它为什么不好之前,不要使用
scanf()
。此外,
“%[^\n]s”
中的尾随
s
不正确。
#define S_MAX_LENGTH
char s[S_MAX_LENGTH + 2];
if (fgets(s, sizeof s, stdin)) {
  s[strcspn(s, "\n")] = '\0'; // Should code want to lop off a potential trailing \n
  ....