Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.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
接受多个字符输入的scanf_C_Char_Scanf - Fatal编程技术网

接受多个字符输入的scanf

接受多个字符输入的scanf,c,char,scanf,C,Char,Scanf,我试图理解scanf在同时输入两个字符时是如何工作的。例如,在终端14中运行此命令后,我本来希望将1分配给a1,将4分配给a2,但它不起作用。例如,我必须将一个a4的终端输入分离为两个单独的字符,我该怎么做呢?如有任何见解,将不胜感激 int main() { char a1, a2; printf("input values here: "); scanf(" %c%c ", &a1, &a2); printf("%c%c",a1,a2); } 当它在格式字符串中看到

我试图理解scanf在同时输入两个字符时是如何工作的。例如,在终端14中运行此命令后,我本来希望将1分配给a1,将4分配给a2,但它不起作用。例如,我必须将一个a4的终端输入分离为两个单独的字符,我该怎么做呢?如有任何见解,将不胜感激

int main() {
 char a1, a2;
 printf("input values here: ");
 scanf(" %c%c ", &a1, &a2);
 printf("%c%c",a1,a2);
}
当它在格式字符串中看到空格时,它将读取并丢弃/忽略任意数量的空白字符。为了实现这一点,scanf函数需要找到非空白字符的结尾

跟scanf格式字符串一样,尾随空格的问题在于,要查找尾随空格序列的结尾,必须至少输入一个额外的非空格字符

我想,解决您问题的简单方法是删除scanf格式字符串中的尾随空格。

当它看到格式字符串中的空格时,它将读取并丢弃/忽略任意数量的空白字符。为了实现这一点,scanf函数需要找到非空白字符的结尾

跟scanf格式字符串一样,尾随空格的问题在于,要查找尾随空格序列的结尾,必须至少输入一个额外的非空格字符


我想,解决您问题的简单方法是在scanf格式字符串中删除尾随空格。

%c%c==>%c在endyea处没有空格,非常感谢。检查返回可以消除所有谜团,并准确地告诉您发生了哪些转换以及没有发生哪些转换。解释其余部分c%c==>%c%c在endyea没有运行良好的空间,非常感谢。检查返回可以消除所有的谜团,并准确地告诉您发生了哪些转换,哪些没有。其余的解释。
./main
input values here: 14