主题:关于gets和scanf.
爱缡的夏
[专家分:0] 发布于 2011-05-20 02:08:00
大家都说不提倡用 gets怕溢出
那用什么来代替GETS呢,用scanf又不能读取空格。如果需要读取"acxzcacsd asd d"这样的字符串该如何实现?不用gets.
回复列表 (共2个回复)
沙发
bruceteen [专家分:42660] 发布于 2011-05-20 08:23:00
1. 你可以用 char *fgets( char *str, int n, FILE *stream ); 最后一个参数为 stdin;
2. scanf是可以取空格的,比如对于"abc 123 456|abc 245 789"如果想取"abc 123 456"可以用 scanf( "%[^|]|" ),即你得告诉它以什么为字符串结束标志。同理,如果想取一行,当然就是 "%[^\n]%*c"
板凳
爱缡的夏 [专家分:0] 发布于 2011-05-20 21:34:00
谢谢哈~长知识了。
我来回复