我用的是vs2010
追答去下载一个win TC吧,那个编译器我也没用过。win TC是个小东西,也方便
vs2010
scanf在前getchar后一起使用,发现getchar没有被执行,为什么?请大家指教...
其实是执行了,因为getchar()函数可以接收空格和回车,所以c中应该接收的是回车,你可以在输出时可以按a,c,b的顺序输出就会知道了.
简单的c语言问题 为什么getchar函数不执行,问号处??
这是因为getchar前面有一个scanf("%lf",&a);你输入完a的值后,是否会 输入回车 这个回车就是一个字符啊,这个字符就被getchar当做你输入的字符了,所以看起来像没有执行,其实是执行了。可以在getchar()前使用 fflush(stdin);刷新标准输入缓冲区,把输入缓冲区里的东西丢弃 这样就可以输入字符...
C语言程序编译成功了,执行时候 输入数字后回车 程序自动关掉了_百度知 ...
1.在cmd命令行里面运行你的程序。2.在程序main函数return之前加入两个getchar();函数调用 3.在程序main函数return之前加上一行system( "PAUSE ");
...程序为何在scanf代码和switch函数之间加上getchar();就能够解决执行...
那就肯定是缓冲区的问题了. 调用scanf后留下了一个\\n, 这个\\n在下一次输入的时候就会直接被读入, 导致输入出错. 所以一般scanf写的时候在%x后面加一个空格, 如: scanf("%d ", &i);虽然看你的代码中后面没有输入, 但是从getchar中只能分析出这么多了, 你没有说清是哪有问题.
c语言scanf输入字符串为何要加getchar
第一个scanf读入字符串后,换行符留在输入缓冲区中,被第二个scanf读入(scanf的格式字符串为%c时会读取一切字符包括换行和回车),因而造成错误。可在第一个scanf结束后加入一行while(getchar()!='\\n');清空输入缓冲区。
写c语言用scanf输入如何才能看到程序结果?
C语言中scanf是标准库函数,主要用来接收用户输入的数据。函数格式:intscanf(char*format,args,);功 能:从标准输入设备按format指定格式输入数据给args所指向的内存单元返 回值:读入并赋给args的数据个数。遇文件结束返回EOF,出错返回0举例如下:int a;scanf("%d", &a); \/\/ 按%d的格式(...
【C语言】gets和puts还有scanf和printf搭配使用
h;printf("输入长和高:");scanf("%d%d", &l, &h); printf("输入字符串a=");flushall();\/\/清空缓冲区gets(a);puts(a);return 0; }这样就可以了。非格式化输入,字符和字符串的输入会受到前次输入缓冲区的影响,因此在gets、getchar等接收字符输入前,应该清空缓冲区。
关于C语言中的scanf()和getchar()
而输入函数直接从输入缓冲区中取数据。正因为输入函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,输入函数会直接取得这些残留数据而不会请求键盘输入,这就是原因。scanf("%d",&ch)不接收字符,因为在缓冲区里面,由后面的getchar()接收。
C语言编的程序不能显示输出是那里出的问题?
回答:这是因为程序的时间是很短的,程序运行结束了,该进程也就结束了,所以你是看不到屏幕上的显示。解决方法:(1)在程序最后使用getchar()函数(2)或者是添加system("pause"); 程序运行到此处,就会等待用户的输入,所以此时用户是可以看到屏幕上的显示,直到用户点击任意键。
C语言,scanf ()与getchar( )问题
getchar(),是读入一个字符,不是清除缓存,由于你一般输入都是以回车结尾,实际上在计算机里,回车是一个字符,‘\\n’,而读入的数据不包括这个‘\\n’,所以他会留在输入缓冲区等待下一次输入(如果有的话),所以有的时候在scanf后面加个getcahr(),可以起到清楚缓存的作用,不过这不是一定的,...