gpt4 book ai didi

c - 我可以使用什么替代方法来代替 gets() 和 puts()?

转载 作者:太空宇宙 更新时间:2023-11-04 05:16:01 26 4
gpt4 key购买 nike

gets() 的代码片段

int main(int argc, char *argv[])
{
char str[MAX_SIZE]
gets(str);
printf("\n");

puts() 的代码片段

  printf("The most probable key is: %d\n", max2);
puts(output);
return 0;

我没有粘贴我的全部代码,因为它似乎与我的问题无关。我只想知道解决此问题的方法,因为当我通过 GCC 运行我的代码时,它会给我错误并且不允许我使用 gets()。我该如何解决这个问题?

最佳答案

改用fgetsfputs。除了消除 gets 的所有缺陷外,getsfgets 的用法还有一个主要区别:fgets 在缓冲区中存储换行符(而 gets 没有)。

因此,等效项 - 即如果不需要则删除任何新行 - 可能如下所示。函数调用 strcspn(buffer,"\n") 给出最长的字符序列,直到遇到新行(或 strlen(buffer),如果字符串不包含新行)。通过将 0 写入此位置的索引,将删除一个新行(如果有的话)。

char buffer[MAX_SIZE] = "";
if (fgets(buffer, MAX_SIZE ,stdin)) {
buffer[strcspn(buffer,"\n")] = '\0';
}

关于c - 我可以使用什么替代方法来代替 gets() 和 puts()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54455908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com