回 帖 发 新 帖 刷新版面

主题:关于gets和scanf.

大家都说不提倡用 gets怕溢出
那用什么来代替GETS呢,用scanf又不能读取空格。如果需要读取"acxzcacsd asd d"这样的字符串该如何实现?不用gets.

回复列表 (共2个回复)

沙发

1. 你可以用 char *fgets( char *str, int n, FILE *stream ); 最后一个参数为 stdin;
2. scanf是可以取空格的,比如对于"abc 123 456|abc 245 789"如果想取"abc 123 456"可以用 scanf( "%[^|]|" ),即你得告诉它以什么为字符串结束标志。同理,如果想取一行,当然就是 "%[^\n]%*c"

板凳


谢谢哈~长知识了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册