C语言入门 发表于 2014-3-30 13:55:59

程序为什么会这样??????!!!!

#include<stdio.h>
#include <windows.h>
int main(void)
{
        int i;

        printf("输入123,并且按一下回车键:\n");
        scanf("%d",&i);
        while(1)
        {
        printf("郭峰同学,我日你大爷!!!\n");
        Sleep(1000);
}
        getchar();
        getchar();
        getchar();
}我把这个代码生成的程序在自己电脑上运行了一下,没有一闪而过,然后我把exe文件通过qq给同学发过去,为什么他一打开就推出了,自己电脑上不退出,有3个getchar()啊!!!!!!!

lurning 发表于 2014-3-30 13:56:00

C语言入门 发表于 2014-4-5 13:53 static/image/common/back.gif
怎么就像你的说的弄release

我觉得大家说的用system(pause)也可以,但是我很好奇楼主的程序里有三个getchar(),为什么没起作用呢,楼主你做成release再看下吧,你在组建旁边把Debug改成Release,就可以了

青玄 发表于 2014-3-30 15:28:33

其实这与getchar()没关系,这个程序简化了以后是这样的,实现一样的功能:

#include<stdio.h>
#include <windows.h>
int main(void)
{
      int i;
      printf("输入123,并且按一下回车键:\n");
      scanf("%d",&i);
      while(1)
      {
          printf("郭峰同学,我日你大爷!!!\n");
}
}

至于你说的那个程序一运行就退出了,我想只要while()里面的值不等于0的话,程序是不会退出的!

C语言入门 发表于 2014-3-30 19:07:59

青玄 发表于 2014-3-30 15:28 static/image/common/back.gif
其实这与getchar()没关系,这个程序简化了以后是这样的,实现一样的功能:

#include


就退出了啊,发在朋友电脑上一打开就退出,不过也不是,是按了回车以后退出的,等于没显示结果啊!但我要的就是结果

lurning 发表于 2014-3-30 23:51:44

不会吧,你自己生成release了吗,里面还有个scanf怎么会一闪就退出了呢

C语言入门 发表于 2014-3-31 12:10:57

lurning 发表于 2014-3-30 23:51 static/image/common/back.gif
不会吧,你自己生成release了吗,里面还有个scanf怎么会一闪就退出了呢

是输入123后然后按回车就退出了,不显示结果啊

lurning 发表于 2014-3-31 15:41:47

C语言入门 发表于 2014-3-31 12:10 static/image/common/back.gif
是输入123后然后按回车就退出了,不显示结果啊

你发给你同学的exe是release里的还是Debug里的?

seahu 发表于 2014-3-31 15:52:29

原来学C也可以来整人的..LZ有才了

hanhaochi 发表于 2014-4-1 15:58:45

实验了一下发给朋友,是可以的。程序没问题,问题是你和你朋友那边。

Qyears 发表于 2014-4-2 10:37:36

能不这么无聊好吗{:5_103:}

C语言入门 发表于 2014-4-2 12:07:17

lurning 发表于 2014-3-31 15:41
你发给你同学的exe是release里的还是Debug里的?

debug里的,有问题吗,而且我没有建工程,直接.c

lurning 发表于 2014-4-4 16:53:36

C语言入门 发表于 2014-4-2 12:07 static/image/common/back.gif
debug里的,有问题吗,而且我没有建工程,直接.c

debug里的程序是依赖vc6.0环境的,你给别人当然不能使用啦,你不妨release,这样就可以了,它是脱离编译环境的机器指令。

C语言入门 发表于 2014-4-5 13:53:54

lurning 发表于 2014-4-4 16:53 static/image/common/back.gif
debug里的程序是依赖vc6.0环境的,你给别人当然不能使用啦,你不妨release,这样就可以了,它是脱离编译环 ...

怎么就像你的说的弄release

wiliam 发表于 2014-4-5 13:59:54

你直接 用.exe 是会 一点开就关闭因为程序已经运行完了嘛    建议 在包含头用个#include<windows.h>
然后在return 0; 前面加个system(pause); 就不会了

wiliam 发表于 2014-4-5 14:01:57

#include<stdio.h>
#include <windows.h>
int main(void)
{
      int i;

      printf("输入123,并且按一下回车键:\n");
      scanf("%d",&i);
      while(1)
      {
      printf("郭峰同学,我日你大爷!!!\n");
      Sleep(1000);
}
      getchar();
      getchar();
      getchar();
system(pause);
}
或#include<stdio.h>
#include <windows.h>
int main(void)
{
      int i;

      printf("输入123,并且按一下回车键:\n");
      scanf("%d",&i);
      while(1)
      {
      printf("郭峰同学,我日你大爷!!!\n");
      Sleep(1000);
}
      getchar();
      getchar();
      getchar();
Sleep(1000);
}

C语言入门 发表于 2014-4-5 21:16:35

lurning 发表于 2014-4-5 21:11 static/image/common/back.gif
我觉得大家说的用system(pause)也可以,但是我很好奇楼主的程序里有三个getchar(),为什么没起作用呢 ...

嗯,可以了,激动

lurning 发表于 2014-4-5 21:31:24

C语言入门 发表于 2014-4-5 21:16 static/image/common/back.gif
嗯,可以了,激动

什么原因导致的
页: [1]
查看完整版本: 程序为什么会这样??????!!!!