1. 首页 > 科技

为什么printf语句连续运行中间的scanf没弹出来? scanf和printf语句的使用特点

为什么printf语句连续运行中间的scanf没弹出来?scanf和printf语句的使用特点

为什么这个程序在执行最后的printf后不执行scanf就退出了

在两个prinf之间加上getchar就好了 即你的最后三行改成:

printf("%c\n",c);

printf("please input next alphbat");

getchar();

scanf("%c",&c);

你追问的那个小程序不用加有两个原因

1,程序内只用了一次scanf函数,所以不存在上次输入时产生的回车字符

2.输入类型为float型,对于int, double 这些类型是不用担心回车符的,因为回车是字符,scanf中是不会接收的

但是对于char型来说,回车字符也是字符,所以在上一次scanf函数中回车也被当做字符而接收了

我编写了一个小程序用于测试:

#include <stdio.h>

int main()

{

char a;

printf("1\n");

printf("2\n");

scanf("%c",&a);

printf("3\n");

scanf("%c",&a);

return 0;

}

输入类型为char的时候 最后一句scanf就直接被跳过了

但是你换成int 类型的时候就可以正常输入 楼主可以自己测试下

printf()为什么显示不出来

你把两个 scanf 语句中的"%d\n",更改为:"%s" 就正确了。

如下:scanf("%s",firstname);

scanf("%s",surname);

printf("You are %s, %s.\n", firstname,surname);

完整的程序如下:

#include <stdio.h>

int main(void)

{

char surname[6], firstname[6] ;

printf("Please input your firstname and surname:");

scanf("%s", firstname);

scanf("%s", surname);

printf("You are %s, %s.\n", firstname,surname);

return(0);

}

scanf输入后printf为什么无法输出?

代码有错误,原因是 scanf第一个参数是格式控制字符串, int的输入格式为%d

具体修改如下:

scanf("%a",&a); 修改为 scanf("%d",&a);

scanf("%b",&b); 修改为 scanf("%d",&b);

C语言。为什么在调用函数中用了scanf.之后主函数的scanf和printf语句就不执行了?怎么办呀

执行了的

# include"stdio.h"

void mm(int &n)

{

int a;

scanf("%d",&a);

}

int main()

{

int a;

char ch='Q';

mm(a);

printf("请选择:\n");

scanf("%c",&ch);

printf("%c %d %x\n",ch, ch, ch); //实际上ch就是你输入的回车符

}