gpt4 book ai didi

c - 如何删除从 C 中的 fgets 输入的额外字符?

转载 作者:行者123 更新时间:2023-12-02 06:56:29 25 4
gpt4 key购买 nike

我听说在 C 编程中使用 gets() 不好,使用 fgets 更安全...所以我正在使用 fgets。但是,我遇到了 fgets 的问题:我输入了太多字符,不知何故,它溢出了。

如何去除多余的输入字符?

char answer[4];
char answer2[4];

fgets(answer,sizeof(answer),stdin);
printf("answer: %s\n",answer);

fgets(answer2,sizeof(answer2),stdin);
printf("answer2: %s\n",answer2);

比如对于第一个fgets,我输入123456,得到的输出是

answer: 123
answer2: 456

如何从进入下一个 fgets 输入中删除 456?在为第一个 fgets 输入 123456 后,我想要这样的输出:

answer: 123

然后,用户继续为下一个 fgets 输入输入...

最佳答案

fgets(answer,sizeof(answer),stdin);
printf("answer: %s\n",answer);
if(!strchr(answer, '\n')) //newline does not exist
while(fgetc(stdin)!='\n');//discard until newline
fgets(answer2,sizeof(answer2),stdin);

关于c - 如何删除从 C 中的 fgets 输入的额外字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30388101/

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