用scanf输入字符型数据时,输入的格式要注意什么?

2025-04-27 22:09:01
推荐回答(3个)
回答1:

对于scanf函数,程序就可以接收不同的输入,对输入进行处理而得到不同的输出结果。

对于字符型数据的输入,输入格式要注意以下几点:

格式字符串中一般不要有其他的非格式字符,如,

scanf("Please input a char :\t%c\n", &ch); // 双引号内的"Please.......",以及\t、\n等都不要出现scanf("%c", &ch);   // 只包含格式字符就好了。

输入多个字符时直接连续用%c,不需要加入分隔符,同样输入也是连续输入且不能使用任何其他字符(如空格,回车等)来分隔。空格、制表以及回车都将被视作有效的字符输入。

scanf("%c%c%c", &ch, &ch2, &ch3);   // 只包含格式字符就好了。

当字符和其他数值类数据混合输入时,字符要放在前面,数值放在后面输入。这样可以保证开始已经有效的输入了字符,而后面的数值也可以正确的输入。

但如果一定要字符在数值之后输入,就需要要求输入者严格按照指定的个时输入数据了。稍有不慎,就不能得到正确的输入。

如需要输入一个整数i和一个字符ch。scanf("%d%c",&i,&ch); 要求在整数后面不能有任何分隔,如回车,要立即跟随要输入的字符。如果不小心输入了回车,则回车符将被输入到字符变量ch中。

回答2:

对于scanf函数,大家是既爱又恨。

爱的是,有了它,程序就可以接收不同的输入,对输入进行处理而得到不同的输出结果。恨的是,输入的规则比较多,经常会出现输入后得不到想要的输入效果。

对于字符型数据的输入,输入格式要注意以下几点:

 

  1. 格式字符串中一般不要有其他的非格式字符,如

    scanf("Please input a char :\t%c\n", &ch); // 双引号内的"Please.......",以及\t、\n等都不要出现scanf("%c", &ch);   // 只包含格式字符就好了

  2. 输入多个字符时直接连续用%c,不需要加入分隔符,同样输入也是连续输入且不能使用任何其他字符(如空格,回车等)来分隔。空格、制表以及回车都将被视作有效的字符输入。

    scanf("%c%c%c", &ch, &ch2, &ch3);   // 只包含格式字符就好了

  3. 当字符和其他数值类数据混合输入时,字符要放在前面,数值放在后面输入。这样可以保证开始已经有效的输入了字符,而后面的数值也可以正确的输入

  4. 但如果一定要字符在数值之后输入,就需要要求输入者严格按照指定的个时输入数据了。稍有不慎,就不能得到正确的输入。

  5. 如需要输入一个整数i和一个字符ch。scanf("%d%c",&i,&ch); 要求在整数后面不能有任何分隔,如回车,要立即跟随要输入的字符。如果不小心输入了回车,则回车符将被输入到字符变量ch中。

回答3:

  1. 格式字符串中一般不要有其他的非格式字符,如
    scanf("Please input a char :\t%c\n", &ch); //双引号内的"Please.......",以及\t、\n等都不要出现scanf("%c", &ch); //只包含格式字符就好了

  2. 输入多个字符时直接连续用%c,不需要加入分隔符,同样输入也是连续输入且不能使用任何其他字符(如空格,回车等)来分隔。空格、制表以及回车都将被视作有效的字符输入。

  3. scanf("%c%c%c", &ch1, &ch2, &ch3); //只包含格式字符就好了

  4. 当字符和其他数值类数据混合输入时,字符要放在前面,数值放在后面输入。这样可以保证开始已经有效的输入了字符,而后面的数值也可以正确的输入

  5. 但如果一定要字符在数值之后输入,就需要要求输入者严格按照指定的个时输入数据了。稍有不慎,就不能得到正确的输入。

  6. 如需要输入一个整数i和一个字符ch。scanf("%d%c",&i,&ch);要求在整数后面不能有任何分隔符,如回车,要立即跟随要输入的字符。如果不小心输入了回车,则回车符将被输入到字符变量ch中。