我听说在 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?在为第一个 fget 输入 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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)