gpt4 book ai didi

C-使用 gets() 进行故障排除

转载 作者:行者123 更新时间:2023-11-30 18:19:16 25 4
gpt4 key购买 nike

当我给出第一个输入时,在 gets() 起作用之前会出现一个额外的 0。但是如果我删除gets(),那就没有问题了。无法使用 printf() 因为它在空格处中断。请给出任何替代解决方案或者我应该做什么?

 #include <cstdio>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
long long a,i,t,count;
int op;
char s[10000];
scanf("%lld",&t);
for(i=1;i<=t;i++)
{
gets(s);
a=atoll(&s[7]);
printf("%lld",a);
}
return 0;
}

最佳答案

scanf() 将第一行的行尾字符保留在输入流中,然后由 gets() 使用。这是这里经常讨论的初学者常见错误。

建议:

  1. 请勿将 scanf() 例程与 gets() 例程混合使用。
  2. 除了简短的测试程序外,不要使用gets()(而是使用fgets()),因为使用gets()可能会导致缓冲区溢出发生。

关于C-使用 gets() 进行故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10136088/

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