鱼C论坛

 找回密码
 立即注册
查看: 2542|回复: 16

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

[复制链接]
发表于 2014-3-30 13:55:59 | 显示全部楼层 |阅读模式
2鱼币
#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()啊!!!!!!!

最佳答案

查看完整内容

我觉得大家说的用system(pause)也可以,但是我很好奇楼主的程序里有三个getchar(),为什么没起作用呢,楼主你做成release再看下吧,你在组建旁边把Debug改成Release,就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-30 13:56:00 | 显示全部楼层

我觉得大家说的用system(pause)也可以,但是我很好奇楼主的程序里有三个getchar(),为什么没起作用呢,楼主你做成release再看下吧,你在组建旁边把Debug改成Release,就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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的话,程序是不会退出的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-30 19:07:59 | 显示全部楼层
青玄 发表于 2014-3-30 15:28
其实这与getchar()没关系,这个程序简化了以后是这样的,实现一样的功能:

#include

就退出了啊,发在朋友电脑上一打开就退出,不过也不是,是按了回车以后退出的,等于没显示结果啊!但我要的就是结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-30 23:51:44 | 显示全部楼层
不会吧,你自己生成release了吗,里面还有个scanf怎么会一闪就退出了呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-31 12:10:57 | 显示全部楼层
lurning 发表于 2014-3-30 23:51
不会吧,你自己生成release了吗,里面还有个scanf怎么会一闪就退出了呢

是输入123后然后按回车就退出了,不显示结果啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-31 15:41:47 | 显示全部楼层
C语言入门 发表于 2014-3-31 12:10
是输入123后然后按回车就退出了,不显示结果啊

你发给你同学的exe是release里的还是Debug里的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-31 15:52:29 | 显示全部楼层
原来学C也可以来整人的..LZ有才了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-1 15:58:45 | 显示全部楼层
实验了一下发给朋友,是可以的。程序没问题,问题是你和你朋友那边。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-2 10:37:36 | 显示全部楼层
能不这么无聊好吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-2 12:07:17 From FishC Mobile | 显示全部楼层
lurning 发表于 2014-3-31 15:41
你发给你同学的exe是release里的还是Debug里的?

debug里的,有问题吗,而且我没有建工程,直接.c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-4 16:53:36 | 显示全部楼层
C语言入门 发表于 2014-4-2 12:07
debug里的,有问题吗,而且我没有建工程,直接.c

debug里的程序是依赖vc6.0环境的,你给别人当然不能使用啦,你不妨release,这样就可以了,它是脱离编译环境的机器指令。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-5 13:53:54 | 显示全部楼层
lurning 发表于 2014-4-4 16:53
debug里的程序是依赖vc6.0环境的,你给别人当然不能使用啦,你不妨release,这样就可以了,它是脱离编译环 ...

怎么就像你的说的弄release
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-5 13:59:54 | 显示全部楼层
你直接 用.exe 是会 一点开就关闭  因为程序已经运行完了嘛    建议 在包含头用个#include<windows.h>
然后在return 0; 前面加个system(pause); 就不会了  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-5 21:16:35 | 显示全部楼层
lurning 发表于 2014-4-5 21:11
我觉得大家说的用system(pause)也可以,但是我很好奇楼主的程序里有三个getchar(),为什么没起作用呢 ...

嗯,可以了,激动
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-5 21:31:24 | 显示全部楼层
C语言入门 发表于 2014-4-5 21:16
嗯,可以了,激动

什么原因导致的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 01:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表