c语言在输入数据后就报错崩溃了怎么办

作者&投稿:水肥 (若有异议请与网页底部的电邮联系)
C语言程序没有错误但输入数据后程序就停止了为什么~

printf("请输入列数:
");
scanf("%d",&N);
这里错了吧,改为:
printf("请输入列数:
");
scanf("%d",&M);

可以使用清理输入流fflush(stdin);这个原因是因为错误输入的内容会保留在输入流,下一次判断会从输入流开始读取,因为错误输入的内容还在,所以直接判断错误,继续循环。
但有些编译器并不支持清理输入流。所以我们这时需要用手动输入让其清除。使用getchar();让其接收错误的字符。但这样就会变成这样,如果输入多个错误就会出现多个次数的循环;直至没有错误输入;这样如果循环内容多,所消耗的资源也就多了。
所以可以使用while()来执行里面的消除字符,但如果直接这样while(getchar())就会进入无限循环,所以可以让其接收一个终止条件,每次输入完都会按回车,那就让其接收'
'换行符终止自己的循环。

扩展资料
C语言从键盘输入数据
程序是人机交互的媒介,有输出必然也有输入。在C语言中,有多个函数可以从键盘获得用户输入:
scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。
getchar()、getche()、getch():这三个函数都用于输入单个字符。
gets():获取一行数据,并作为字符串处理。
scanf() 是最灵活、最复杂、最常用的输入函数,但它不能完全取代其他函数,大家都要有所了解。scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入。
gets() 会读取用户输入的整行内容,包括空格。而 scanf() 遇到空格就结束读取,也就是说,使用 scanf() 读取的字符串中永远不会包含空格。

#include <stdio.h>
#include <stdlib.h>
int main()
{
float c1;
scanf("c1=%f",c1);//注意这一行,有两点可能会导致以上问题,输入时必须按c1=%f格式进行输入,其次,输入后的值是要存储到变量c1中的,所以c1应改为&c1,即scanf("c1=%f",&c1);
printf("%f\n",c1);
system ("pause");//这个函数是调用命令行的,一般要在windows.h头文件中申明一下
return 0;
}

scanf 里c1前没加&.


c语言在输入数据后就报错崩溃了怎么办
int main(){ float c1;scanf("c1=%f",c1);\/\/注意这一行,有两点可能会导致以上问题,输入时必须按c1=%f格式进行输入,其次,输入后的值是要存储到变量c1中的,所以c1应改为&c1,即scanf("c1=%f",&c1);printf("%f\\n",c1);system ("pause");\/\/这个函数是调用命令行的,一般要在windows....

c语言输入数据后回车就退出了?
代码没大问题,加上暂停的代码就能看到结果了。这样改:1.include<stdlib.h> 2 main最后加上:system("pause");return 0;

C语言2021在控制台执行时输入数据后再怎么做?
一般的程序都有输入和输出, 程序对输入的数据加工、计算、处理后,再输出。 C语言程序也是如此, 输入数据后, 可以进行各种处理,运算,然后输出结果。比如:输入3个数,按从小到大的顺序输出来。 有输入、处理 和输出。

C语言程序没有错误但输入数据后程序就停止了为什么
printf("请输入列数:\\n");scanf("%d",&N);这里错了吧,改为:printf("请输入列数:\\n");scanf("%d",&M);

求助C语言大师:我这个程序怎么编译、运行都没错,输入数据后就提示...
我仔细的调试了一下你的程序,写的很有意思,但是有一个问题导致你的程序不能正常运行,一旦你的程序中出现3个字母的化学方程式,比如HCL程序就崩溃了,你可以试试,貌似是对3个字母的元素输入的有问题

c语言求平均数问题,只要输入数据后,输出的结果就不对,请各位高人帮一下...
你里面没有空格 如果你输入5个数字 比如12 13 14 15 16 17 这5个 输入的时候就应该输入121314151617 这样程序会自动判定x1到x5的值 所以输出的平均数是不对的 应该改成scanf("%d %d %d %d %d",&x1,&x2,&x3,&x4,&x5);每个%d之间加空格 这样输入每个数之间也加空格 输出结果就不会错 ...

易语言怎么实现在编辑框里一边输入内容下边就自动现出已有的数据(模糊...
文本组 [1] = “文本1” ' 插入词条,如果楼主有固定的储存方法,可告诉我,我可以再次进行改造 文本组 [2] = “大大三大文本2”文本组 [3] = “三大擦是否文本3”文本组 [4] = “擦拭的文本4”.子程序 开始模糊搜索_声母搜索 .参数 模糊搜索文本, 文本型 .局部变量 ci, 整数型 ...

C语言中程序运行后,在运行界面输入一串数据然后按下Enter键,这行数据...
C语言中程序运行后,在运行界面输入一串数据然后按下Enter键,这行数据是进入了输入缓冲区了。要是数据又被输入函数例如fgets读取后,这行数据就是被读取到了内存变量中,并不是“从输入缓冲区进入了输出缓冲区”。它可以输出,也可以不输出,完全是由程序决定的,与“输出缓冲区”没有关系。

C语言文件输出时,输入数据后为什么会出现乱码
struct studentType),1,fp)!=1) 简单看了下,这行有问题,往文件里写的时候是把一个字符串写进去,stud[i]是一个struct,强行把它序列化的话,内存中的存储不是连续的,这样写就会写入一些没用的数据,导致出错。考虑一下怎么把struct序列化,再看看struct的中的字节是怎么对齐的,建议而已 ...

C语言 用栈进行二进制转十进制 为什么输入数据后就停止了(跟着视频老 ...
if(!s->base) { exit(0); \/\/原代码s->top=s->base; \/\/原代码s->stackSize=size; } s->top=s->base; s->stackSize=size;}void Push(sqStack *s,Elemtype e){ if(s->top - s->base >= s->stackSize) { s->base=(Elemtype *)realloc(s->...

昭苏县17648199584: 用C语言写了一段代码,输入两个数,比较大小,但是运行后输入数据程序就崩溃掉 ,请大仙指教.谢谢! -
隗善紫龙: //C语言标准严格规定先声明 后使用,并且printf输出的类型不对,代码太婆妈,printf是输出,scanf才是输入.修改如下: #include "stdio.h"float max(float x,float y) {return x>y?x:y; }void main() {float a,b,c;scanf("%f,%f,%f",a,b,c);printf("the max is %f\n",max(max(a,b), c) ); }

昭苏县17648199584: C语言程序没有错误但输入数据后程序就停止了为什么 -
隗善紫龙: printf("请输入列数:\n"); scanf("%d",&N); 这里错了吧,改为: printf("请输入列数:\n"); scanf("%d",&M);

昭苏县17648199584: C语言:定义读入int类型数据 输入字符a 程序崩溃 如何办 -
隗善紫龙: 楼主目前的代码是有逻辑上的问题的.既然你已经"告诉"程序每次读入的都是int类型,那么程序接收到一个char型而没有应对的代码,当然就会崩溃了. 一个解决办法是,输入的东西都当成char来对待,那么就有两种情况,你输入的是数字,...

昭苏县17648199584: C语言 程序能运行,但是有时运行中间会崩溃,一般因为什么?怎么解决? -
隗善紫龙: 程序设计的很重要一点就是要保证程序的稳定性,运行时崩溃就是稳定性不够,一般比较常见的就是数据类型不符、内存泄漏等错误造成的.还有,C语言的稳定性上一般也是比较差的

昭苏县17648199584: C语言 只能输入数字,输入其他就提示输入错误,请重新输入怎么弄? -
隗善紫龙: 不知道你指的是输入一个数字或字符还是一串 下面是输入一个数字或字符的#include int main() { char c,c1; while(1) { c=getchar(); c1=getchar(); //你打一个非数字时要按回车,回车本身也是一个字符, 用c1接收回车,以免打一个字符输出两个error if(c>='0'&&c break; printf("error!\n"); } }

昭苏县17648199584: 我的C语言程序为什么老是显示有错误,执行不了? -
隗善紫龙: 你是出现unable to open input file “cos.obj” 吧? 一个很简单的处理方法就是把TC安装到C盘下(最好是根目录). 现在网上下的一般都是压缩包吧?右键点它,再左键点“解压文件...”,选目录的时候就选“C:\”. 其实还有好多方法啦~~比...

昭苏县17648199584: C语言程序一运行就崩溃是什么情况 -
隗善紫龙: 这种情况叫做 runtime error (运行时错误).在 Windows 7 上这样提示:在 Windows XP 上这样提示:runtime error (运行时错误)就是程序运行到一半,程序就崩溃了.比如说:①除以零 ②数组越界:int a[3]; a[10000000]=10; ③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10; ④使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10; ⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000]

昭苏县17648199584: C语言 这个程序怎么运行就崩溃? -
隗善紫龙: 错误:1.子程序第一个循环体中,变量未赋初值. 2. 多了一对花括号{}改成如下程序,即可运行.#include<stdio.h>void strcopy(char s1[],char s2[]){ int i,j=0; for(i=0;s1[i]!='\0';i++) while(s2[j]!='\0') s1[i++]=s2[j++]; s1[i]='\0';}void main(){ char str1[80],str...

昭苏县17648199584: c语言中数据输入错误了如何提示输入错误并实现要求重新输入 -
隗善紫龙: 数据输入错误,有两种情况: 1 输入的数据格式不正确,比如要求输入整型,但是输入了字符型. 这种情况,可以通过scanf的返回值进行判断,scanf的返回值是正确输入的变量个数.当返回值和要输入的变量个数不同时,则表示出错,要求重...

昭苏县17648199584: 请大神看一下我写的c语言 怎么输入成绩时程序就崩溃 -
隗善紫龙: 代码不完整,看不到输入语句, 推测应该是在 inputstudent() 这个函数中

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