我用C语言编辑,有个scanf函数,运行时我输了数字,接着怎样才能继续运行?我按了回车结果程序直接关闭了

作者&投稿:聂蒋 (若有异议请与网页底部的电邮联系)
C语言中用scanf函数输入字符时,为什么要在输入控制符%c前面加空格?用scanf还有哪些要注意?~

%c前面的空格就是用来屏蔽空白符的,
首先必须要知道C语言 scanf() 函数的特性,以及scanf()与缓冲区、标准输入流之间的联系。在此之前,先介绍两个专业术语。
1.缓冲区
缓冲区是一块存放临时输入数据的内存,我们在键盘上输入数据之所以不会马上显示,就是因为数据存放在了缓冲区,在上面例子中,当我们按下回车键后,缓冲区的数据会传送到标准输入流。
2.标准输入流
标准输入流(stdin)是文件指针,scanf()就是从标准输入流或许数据。

以上面代码为例,当执行到scanf()时,
电脑开始执行以下操作:
开始等待用户输入
2.当我们输入数据,在按下回车键前会把数据储存在缓冲区,按下回车键后,会把数据以及换行符(
)一起传送到标准输入流(stdin)中,
scanf()就是从标准输入流中或许数据,上面第一个scanf()要读入一个整数,它从标准输入流中查找,跳过空白符(空格、换行符、制表符)
3.如果遇到数字,则开始读入,直到遇到非数字的字符结束,最后计算读取到的数值,储存到相关变量中。
使用scanf注意事项
1.参数的个数一定要对应
2.输入的数据类型一定要和所需要的数据类型一致
3.每次调用完scanf后,记得调用一个getchar()函数
扩展资料
1.函数 scanf() 是从标准输入流stdio (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
2.函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。
每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
参考资料
网页链接

因为scanf输入要按回车,输入一个字符后回车,计算机实际上接收了两个字符,即:字符+回车。
试一下flushall(); or fflush(stdin);

c语言编写程序一般都是按回车就能继续运行你能不能吧程序弄上来让看看..可能是程序编写 的有问题
我感觉这个错误是腻输入的错误程序本身没什么错误...你写的程序是switch。。。。。case语句..也就是当case语句后的条件满足时才执行...楼主你写的这个程序是当country为a和b是才执行你的输出语句...比如你输入a按下回车执行输出语句你在按下回车..就会关闭窗口..想再次输入的话还得从新运行..而你现在输入了一个数字..也就是case语句不满足条件..程序什么都不执行..只执行default语句了。你在按下回车就结束这个程序了..所以窗口就会关闭。如果你想能连续输入.你最好用goto语句但各种高级语言一般不支持goto..最好用while循环里面添加continue语句就能一直输入字符执行语句了 我也是菜鸟..希望能帮到你..呵呵一起努力

你的程序一遍走完自然就结束了……

switch后面直接就gatchar(),return当然就结束了

要是想要继续使用的话就要在输入之后,getchar之前用条件控制循环……for或者while啥的……

#include<stdio.h>
int main()
{ int flag;
char country;
while(1)
{
scanf("%c",&country);
printf("是否继续:退出请输入0");
scanf("%d",&flag);
switch(country)
{
case'a':
printf("nihao");
break;
case'b':
printf("niyehao");
break;
default:
printf("nibuhao");
}
if(flag==0)
break;
}
getchar();
return 0;
}

for(i=0;i<n;i++)scanf("%d",i);n为你输入数的个数

呵呵
你搞个死循环
或者定义当输入什么时再退出
while(1)
{}
就是死循环


这是一个简单的C语言编程题,请用C语言编辑下。这几天要交,请您尽快回答...
include <stdio.h> include <stdlib.h> include <string.h> define MAX_STEP 20 \/\/index: 0 - 狼,1-羊,2-菜,3-农夫,value:0-本岸,1-对岸 int a[MAX_STEP][4];int b[MAX_STEP];char *name[] = { "空手","带狼","带羊","带菜"};void search(int iStep){ int i...

用c语言编辑,计算1-1000以内能被3整除的数的个数以及它们的和!急需_百 ...
前面的回答都有一个问题,使用一般整型,可能会使数据溢出(若是范围更大)!下面就是可靠的程序代码:include <stdio.h> include <conio.h> void main(){ unsigned long i,j,sum;for(i=1,j=0,sum=0;i<=1000;++i){ if(i%3==0){ ++j;sum+=i;} } printf("count=%lu,sum=%lu\\n"...

c语言用什么编辑器比较好
1. 考试的话看具体考试的要求,往往会制定IDE开发环境,一般DOS下就是TC,Visual C++ 6.0,没有必要另外选择编辑器,当然这些都是非常旧的产品了 2. 参加信息学比赛,Windows下用DEV-C++比较多,这个是gcc编译的 3.如果是自学C,而且教材不特别指定开发环境,推荐 DEV-C++并打开C99编译参数,需要再...

学习c语言用什么软件
这个软件的功能和DevC++差不多,也是Windows环境下一个非常不错的C\/C++开发环境,在早期的学习中,经常会用到这个软件,许多学校机房中都使用这个软件教学。可以直接编辑运行C语言程序,功能比较简单,没有任何提示功能,都是手写代码,现在来说,使用不多了,但对于初学者来说,也是一个不错的选择:相...

用C语言怎么做?
很多大学生都或多或少的懂一点编辑语言,尤其是计算机系的,众说周知,c++语言是众多语言中比较简单易学的,那么要如何使用它来编写程序呢?下面将告知如何编写一个属于自己的小程序。工具\/原料 more 电脑一台(能联网) Visual C++ 6.0(完整绿色版)软件 方法\/步骤 1\/6分步阅读 想要编写软件首先得...

用c语言编辑:接受用户输入的3种商品的价格.如果购买的3种商品中至少有...
include<stdio.h>int main(){double p,p1,p2,p3,dis = 0;scanf("%lf %lf %lf",&p1,&p2,&p3);if((p1>50||p2>50||p3>50)||(p1+p2+p3>100)) dis = 0.15;p = (p1+p2+p3)*(1-dis);printf("用户应付的钱数为:%.2lf\\n",p);return 0; } ...

用C语言编写一个简单的文本编辑器.
我的C语言是自学的,懂一小点。虽然我没有你说的那种源代码,但我有记事本的源代码,你想看看吗?记事本(主程序)include <windows.h> include "sample.h"static char g_szClassName[] = "MyWindowClass";static HINSTANCE g_hInst = NULL;define IDC_MAIN_TEXT 1001 BOOL LoadFile(HWND h...

用C语言编辑计算圆的体积,给定v,r,h这三个符号,最好用float!
include "stdafx.h"include "stdio.h"int Volume(float &v,float r, float h);int Volume(float &v,float r, float h){ v=3.14*r*r*h;return 0;} int main(int argc, char* argv[]){ float v=0,r,h;printf("请输入圆柱的底面半径和高:");scanf("%f%f",&r,&h);Volume(...

用C语言程序编辑对于一次考试成绩进行统计,考M科,有N人(如10人)参加...
j]\/i;} for(i=0,p=0;i<n;i++){ p++;for(j=0;j<m;j++)if(N[i][j]<M[j]){p--;break;} } for(i=0;i<n;i++)printf("%.2lf%c",R[i],i<(n-1)?' ':'\\n');for(j=0;j<m;j++)printf("%.2lf%c",M[j],j<(m-1)?' ':'\\n');} return 0;} ...

用C语言编辑井字棋 这个程序出现了错误 但不知该怎么改 或者另做一个...
{int c=0;printf ("\\nPlease enter the Num to go: ");for (c=getche(); ; printf("\\n"), c=getche() )if (isdigit(c) && c!='0' && qp[c-48]==0){n--; qp[c-48]=-1; return;} } \/* 屏幕输出函数display,在屏幕上输出当前的棋盘 *\/ void display(int x){...

尚义县13325755513: C语言scanf用法 -
绪力波利: scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include .(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include .)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中.scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF.

尚义县13325755513: c语言,编写程序用scanf函数输入x的值,计算并输出y的值. -
绪力波利: scanf("%d",&x); //y不用输入 if (x<=1) { y=x; printf("%d\n",y);} //条件x<=1成立时,这两句都要执行,所以要用{}变成复合语句. else if(x>1&&x<10) { y=2*x+1; printf("%d\n",y);} //同上 else {y=3*x+1; printf("%d\n",y);} //同上 更好的是: scanf("%d",&x); if (x<=1) y=x; else if(x>1&&x<10) y=2*x+1; else y=3*x+1; ); // y求值 printf("%d\n",y); //输出y

尚义县13325755513: 用C语言编写scanf函数的代码:键盘输入3个整数分别给到变量a、b、c? -
绪力波利: #include<stdio.h> int main() { int a,b,c;scanf("%d%d%d",&a,&b,&c);printf("a=%d b=%d c=%d\n",a,b,c);return 0; }

尚义县13325755513: c语言中的scanf 函数的用法 -
绪力波利: 输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&.scanf("%s",s);改为scanf("%s",&s); scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);格式控制字符串包含:格式控...

尚义县13325755513: C语言scanf函数用法 -
绪力波利: scanf("%f%f%f",&a,&b,&c);这样即可将输入的三个数字依次赋值给a,b,c三个变量,在输入数字时,用空格或者回车分隔.

尚义县13325755513: C语言的SCANF函数
绪力波利: scanf默认以空格字符划分输入(空格,tab,换行之类的) 输入数字的时候,如果你连续读入,scanf是没法区分各个输入的,除非限定输入宽度: scanf( "%1d%1d%1d", &a,&b,&c ); 这样就可以确保每个int只读取1个字符长度的数字

尚义县13325755513: C语言中的scanf函数 -
绪力波利: 我觉得你说的ooo应该是scanf("ooo%d",&iNum)这样的吧; 在这个函数中,第一个参数是字符串形式的,,其中包含着格式控制符或者其他字符,在第一个参数中出现的除了格式控制符之外的所有内容都必须由键盘输入,以区别扫描下一个格式的内容 也就是说,在双引号之中的东西(除了格式控制符,格式控制符楼上已经列举的比较详细我就不说了)都必须由键盘键入 例如 scanf("%d,%d",&a,&b); 输入的时候,输入第一个数字后必须输入一个","然后才能输入第二个字符; 你说的ooo就相当与本例中的","

尚义县13325755513: 我用C语言编辑,有个scanf函数,运行时我输了数字,接着怎样才能继续运行?我按了回车结果程序直接关闭了 -
绪力波利: c语言编写程序一般都是按回车就能继续运行你能不能吧程序弄上来让看看..可能是程序编写 的有问题 我感觉这个错误是腻输入的错误程序本身没什么错误...你写的程序是switch.....case语句..也就是当case语句后的条件满足时才执行...楼...

尚义县13325755513: 简单C语言scanf输入问题 -
绪力波利: (1)我初学c语言时也碰到了跟你一样的问题, 那是因为scanf函数的一个天生的毛病, 你在调用scanf()时,输入一个数字,并按下回车, 你的本意是只想让scanf接受一个数字, 但同时scanf()把那个回车也送入了缓冲区中, 你可以这样改...

尚义县13325755513: C语言 scanf
绪力波利: int a,b; scanf("%d%d",&a,&b);和scanf("%d,%d",&a,&b);是不同的.前者要打逗号,后者不用打逗号.%d输入的是整型变量,如果你要输入字符变量的话用%c.空格键也是一个字符,也就是说空格键在内存中占一个字节.在%d中按空格键,就是换行.在%c中按空格键时,计算机按字符来算,也就是占一个字节.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网