⑴ c语言的gets函数编译不成功阿,很短的程序
C语言的gets函数一般包含在stdio.h头文件里,如果没有包含比头文件那可能会有问题。第二种情况包含了还出问题,说明你的编译器已经不支持这个函数了,这个函数非常不安全,容易造成溢出,建议换成fgets函数。
函数原型:
char *fgets(char *buf, int bufsize, FILE *fp);
参数解释:
参数一是输入字符串存放地址,
参数二是存放地址最大容量,
参数三是从哪里输入,可以从文件也可从输入设备,如果从输入设备输入这个参数可以写成stdin,如果从文件输入此参数为文件指针。
返回值:
输入成功返回参数一,失败返回NULL.
补充知识:
为什么gets不让用呢,我们可以看它的原型:char *gets(char *buf);
这个函数可以一直输入知道换行或者EOF,它并不考虑buf空间是否足够大能放下,这就容易导致溢出,有些别有用心的人就会利用这个漏洞去攻击你的程序。
而fgets可以通过第二参数保证不会读入超过buf空间的字符。
⑵ C语言程序对,但是编译不出来是怎么回事
编译出来只说明程序没有语法错误,不说明没亮册有逻辑错误,有错误一般会有屏幕输出,此其一敬知宏。第二,可以在程序中设定一些输出语句或断点观察。第三如果程序不输入、输出内容,程序执行是当然看不见东西(不直观)。第三如果程序一值运行无法退出,说明存在“死循环”。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低猛御级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
⑶ C语言编程时出现的那个expected怎么理解啊
C语言编程时编译失败后提示"expected"说明代码缺乏必要内容导致语法错误。
expected表示预期,期望。在C语言编译失败后的提示信息中出现时表示编译器无法通过编译,且根据其错误给出合理的建议。
此处可以发现编译器提示在花括号 '{' 前缺乏某些符号,可以帮助我们修改源代码,但需要注意的是编译器的判断可能出错,该提示信息仅代表源代码中存在错误即可能原因!目前暂时无法准确标注出出错位置。
C语言程序开发流程如下:
(3)c语言编译不出去扩展阅读
C语言出现的错误大致上可以分为两种,一种是语法错误,另一种是逻辑错误。
大部分语法错误将无法通过编译器编译,编译器会报错并给出提示,设计程序时可以根据编译器给出的提示检查源代码是否符合C语言的标准。
需要注意的是,不同版本的编译器支持的标准可能存在差异,特别在移植代码的过程中需要注意。
逻辑错误相对较难排除,主要是程序设计时由于逻辑不够严谨导致的程序运行错误或无法正常运行。排除逻辑错误需要进行调试,检查程序运行过程数据的变化和堆栈的变化,直到发现问题并解决问题。