/ Vijos / 讨论 / Vijos /

【管理员请进】

问一个小问题,vijos怎么知道应该把输入数据插入到cin流,还是stdin文件指针里面,还有,用conio.h(控制台输入输出)为什么就不能过?

例如a+b problem:

#include

#include

int main()

{

char str[100]={};

int l=0;

while ((str[l]=getch())!=13)l++;

int a,b;

sscanf(str,"%d%d",&a,&b);

printf("%d\n",a+b);

return 0;

}

提交之后提示:运行超时

2 条评论

  • @ 2009-10-07 14:08:16

    13是回车啊`难道数据最后没有回车吗?

  • @ 2009-10-04 11:15:11

    #include

    #include

    int main()

    {

      char str[100]={};

      int l=0;

      while ((str[l]=getch())!=13)l++;

      int a,b;

      sscanf(str,"%d%d",&a,&b);

      printf("%d\n",a+b);

      return 0;

    }

    话说我没大看懂。。。。。

    ((str[l]=getch())!=13)l++;

    str[l]=getch() 是赋值语句,结果总是成立的直到文件尾,返回1,等到了文件尾返回1,返回值永远不等于13啊

    所以是死循环。。。。

    可以这样写

    str[0]=getch();

    for (l=1;str[l]!=13;l++,str[l]=getch());

    至于sscanf(str,"%d%d",&a,&b);是否成立,我不大清楚(我是学pascal的,对c不大了解),等我找c、c++神牛来。。

  • 1