设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
C\C++
›
gcc中无法使用gets().
1
2
/ 2 页
下一页
返回列表
查看:
1526
|
回复:
10
gcc中无法使用gets().
[复制链接]
dickmitnick
dickmitnick
当前离线
积分
114
IP卡
狗仔卡
发表于 2004-11-5 15:54:50
|
显示全部楼层
|
阅读模式
gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux
Thread model: posix
gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
/tmp/cccA9U6s.o(.text+0x40): In function `main':
: the `gets' function is dangerous and should not be used.
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
AMD-K6
AMD-K6
当前离线
积分
1987
IP卡
狗仔卡
发表于 2004-11-5 16:14:07
|
显示全部楼层
使用fgets
回复
支持
反对
使用道具
举报
显身卡
dickmitnick
dickmitnick
当前离线
积分
114
IP卡
狗仔卡
楼主
|
发表于 2004-11-5 16:28:16
|
显示全部楼层
从终端能不能输入带空格的字符串,scanf()好象不行。
回复
支持
反对
使用道具
举报
显身卡
lucifer
lucifer
当前离线
积分
750
IP卡
狗仔卡
发表于 2004-11-6 08:00:26
|
显示全部楼层
实在懒的看文档,自己做个就可以了啊
每次读一个字符,到了规定的字符串分隔符就存下来继续读下一个字符串不就可以了
回复
支持
反对
使用道具
举报
显身卡
dickmitnick
dickmitnick
当前离线
积分
114
IP卡
狗仔卡
楼主
|
发表于 2004-11-8 10:06:34
|
显示全部楼层
谢谢.
我最近在学c,只是想弄明白c提不提供这个功能函数.
回复
支持
反对
使用道具
举报
显身卡
benu
benu
当前离线
积分
220
IP卡
狗仔卡
发表于 2004-11-8 10:50:00
|
显示全部楼层
你上面的哪个提示不是说gcc不支持,而是因为这个函数容易造成溢出,gcc会提示你危险,不要使用这个函数。
gets fgets都是支持输入空格的,
回复
支持
反对
使用道具
举报
显身卡
dickmitnick
dickmitnick
当前离线
积分
114
IP卡
狗仔卡
楼主
|
发表于 2004-11-8 13:03:35
|
显示全部楼层
谢谢楼上的.
在问一个问题.
main()
{
float a,b;
int c;
scanf("%f,%f",&a,&b);
c=max(a,b);
printf("Max is %d\n",c);
}
int max(float a,float b)/*用float会警告,用double或int都不会,为什么????*/
{
int t;
t=(int)(a>b?a:b);
return (t);
回复
支持
反对
使用道具
举报
显身卡
benu
benu
当前离线
积分
220
IP卡
狗仔卡
发表于 2004-11-8 13:40:52
|
显示全部楼层
具体原因不清楚,但你只要在前面加一个函数原型声明就可以了。先声明原型,这也是规范的做法
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2004-11-9 11:39:17
|
显示全部楼层
一般是把函数的定义放在前面,如果放在后面,可以先在前面声明一个原型。
回复
支持
反对
使用道具
举报
显身卡
nuclearweapon
nuclearweapon
当前离线
积分
330
IP卡
狗仔卡
发表于 2004-11-9 23:22:52
|
显示全部楼层
其实是是这样的。
你一开时不申明的时候参数是int
int->float的转化 是这样会有误差的。如整数12345678 而 float 就是1.234567 x 10exp7 出现误差
而int->double不存在这样的问题。这样编译器就会警告
这主要和float的精度有关
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表