fgets而不是获取

时间:2016-03-29 09:50:54

标签: c count fgets word gets

我做了一个程序来计算一个句子中的给定单词。当我尝试通过编译器运行它时,它说''gets is deprecated''。所以我用fgets替换了gets,但是每个单词和句子都输出0。我该如何解决这个问题?

ion-content

1 个答案:

答案 0 :(得分:1)

gets()fgets()之间的区别在于fgets()保留了最终'\n'gets()没有。{/ p>

"字"代码现在正在寻找包含'\n'

删除潜在的'\n'并继续使用之前的代码。

fgets(str, 1026, stdin);
str[strcspn(str, "\n")] = '\0';

fgets(w, 1026, stdin);
w[strcspn(w, "\n")] = '\0';

使用fgets()

时推荐样式/代码更改
// fgets(str, 1026, stdin);
if (fgets(str, sizeof str, stdin) == NULL) return -1;