用什么替代scanf?

匚匚 2010-03-05 08:28:53
scanf用的时候问题多多,用什么替代它呢?
...全文
2515 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaotutu6000 2010-03-10
  • 打赏
  • 举报
回复
引用 45 楼 micro_zhu 的回复:
引用 25 楼 liuxingjin 的回复:scanf()容易内存越界,做用户交互程序很不安全! 总的来说用C做用户交互就不怎么方便 一定要用建议用getchar()或fgets(buffer,count,stdin) =》用count指定输入的有效个数

确实啊,用户交互的时候C容易出错

搞个指针撒~~你看下是scanf()的返回值。。。会有意思,有时间你可以去研究下~~~
赵4老师 2010-03-08
  • 打赏
  • 举报
回复
sscanf
(^_^)
alexhilton 2010-03-08
  • 打赏
  • 举报
回复
用fgets吧,或者用LINUX的read/write
jing78704478 2010-03-08
  • 打赏
  • 举报
回复
scanf输出还是蛮好用的
micro_zhu 2010-03-08
  • 打赏
  • 举报
回复
引用 25 楼 liuxingjin 的回复:
scanf()容易内存越界,做用户交互程序很不安全!
总的来说用C做用户交互就不怎么方便
一定要用建议用getchar()或fgets(buffer,count,stdin) =》用count指定输入的有效个数


确实啊,用户交互的时候C容易出错
yangguangjie 2010-03-08
  • 打赏
  • 举报
回复
scanf绝对好用啊。。。。。。。
shiweifu 2010-03-07
  • 打赏
  • 举报
回复
fgets
fgetc
Tauren_Chieftan 2010-03-07
  • 打赏
  • 举报
回复
引用 11 楼 dr1103 的回复:
在C++中,可以用cin,是一个操作符,而不是一个C语言的函数,不受格式的限制,所以不会有很多的问题出现。

其实我想说cin是重载了的操作符函数,本质还是函数。
liuxingjin 2010-03-07
  • 打赏
  • 举报
回复
引用 29 楼 a564034199 的回复:
引用 25 楼 liuxingjin 的回复:scanf()容易内存越界,做用户交互程序很不安全!总的来说用C做用户交互就不怎么方便一定要用建议用getchar()或fgets(buffer,count,stdin) =》用count指定输入的有效个数
那gets呢?

gets会自动在数组后加'\0',但不会判断数组上界。所以容易出错
匚匚 2010-03-07
  • 打赏
  • 举报
回复
while(scanf("%d",element))
{
...
}

do{
scanf("%d",element);
...
}
while(getch()!='n');
bladesoft 2010-03-06
  • 打赏
  • 举报
回复
getchar(),gets()
a564034199 2010-03-06
  • 打赏
  • 举报
回复
引用 25 楼 liuxingjin 的回复:
scanf()容易内存越界,做用户交互程序很不安全!
总的来说用C做用户交互就不怎么方便
一定要用建议用getchar()或fgets(buffer,count,stdin) =》用count指定输入的有效个数

那gets呢?
bobo364 2010-03-06
  • 打赏
  • 举报
回复
输入,输出字符getchar(),putchar()
输入,输出字符串gets(),puts()

只有这些了,int,float等还是用scanf吧
wa_yi 2010-03-06
  • 打赏
  • 举报
回复
输入,输出字符getchar(),putchar()
输入,输出字符串gets(),puts()
ithiker 2010-03-06
  • 打赏
  • 举报
回复
学习学习///////////////
匚匚 2010-03-06
  • 打赏
  • 举报
回复
while(scanf("%d",element))
{
...
}

do{
scanf("%d",element);
...
}
while(getch()!='n');
引用 33 楼 taophy 的回复:
楼主jd了,第二个scanf明显多了个括号  : )
yzx714 2010-03-06
  • 打赏
  • 举报
回复
个人喜欢用fgets,然后转换
liuxingjin 2010-03-06
  • 打赏
  • 举报
回复
scanf()容易内存越界,做用户交互程序很不安全!
总的来说用C做用户交互就不怎么方便
一定要用建议用getchar()或fgets(buffer,count,stdin) =》用count指定输入的有效个数
jluluoshi88 2010-03-06
  • 打赏
  • 举报
回复
处理字符可以用getchar(),gets()
xiaotutu6000 2010-03-06
  • 打赏
  • 举报
回复
用bioskey(0)
int key;
for(;;)
{
key = boiskey(0);
if(0x1c0d == key)
{
.....
}
}//0x1c0d是回车键的ASSIC码值 从底层控制
加载更多回复(27)

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧