接受多个字符输入的scanf
我试图理解scanf在同时输入两个字符时是如何工作的。例如,在终端14中运行此命令后,我本来希望将1分配给a1,将4分配给a2,但它不起作用。例如,我必须将一个a4的终端输入分离为两个单独的字符,我该怎么做呢?如有任何见解,将不胜感激接受多个字符输入的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); } 当它在格式字符串中看到
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