C++ 怎么自动关闭了?

我自己编了一个小程序,在运行上一切正常,但是打开DEBUG文件夹后运行.exe结果怎么都出不来,我都急坏啦!大家帮帮忙以下是我的程序,可以建个空工作空间运行,一切正常,就... 我自己编了一个小程序,在运行上一切正常,但是打开DEBUG文件夹后运行.exe结果怎么都出不来,我都急坏啦!大家帮帮忙
以下是我的程序,可以建个空工作空间运行,一切正常,就是运行DEBUG文件夹下的.EXE没法出现象运行的时候一样的结果,一闪就关了,这是怎么回事啊?
#include <iostream.h>
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
int main4();
int main1();
int main(){
int c;
cout<<"选择你需要的操作:(1为32位二进制数转换成点分十进制。2为点分十进制转换成32位二进制数)";
cin>>c;
switch(c){
case 1:main1();
case 2:main4();
}

return 0;
system("PAUSE");

}
int get_a_string(char *buffer,char*s,int start);
char strs[10][100];
int change(int);
int main4(){
int i,j,k,l,m;
int pos=0;
char buffer[200];
cout<<"输入点分十进制(示例:1.2.3.4):";
cin>>buffer;
for (i=0;i<10;i++){
pos=get_a_string(buffer,strs[i],pos);
if(pos==-1)
break; }
j=atoi(strs[0]);
k=atoi(strs[1]);
l=atoi(strs[2]);
m=atoi(strs[3]);
change(j);
change(k);
change(l);
change(m);
return 0;
}

int get_a_string (char *buffer,char *dest,int pos){
int i=pos,j=0;
while(buffer[i]=='.')
i++;if(buffer[i]=='\0')
return -1;
while (buffer[i]!='.'&&buffer[i]!='\0')
dest[j++]=buffer[i++];
dest[j]='\0';
return i;}
int change(int iNum)
{
char a[9]="";
int i;
if (iNum > 255 || iNum < 0)
{
cout << "the number is not right." << endl;
return 0;
}
for (i = 7;i>=0;i--)
{
if (iNum == 0)
{
for(;i>=0;i--)
{
a[i] = '0';
}
break;
}
if (iNum % 2 == 0)
{
iNum = iNum /2;
a[i] = '0';
}
else
{
iNum = (iNum -1)/2;
a[i] = '1';
}
}
cout << a ;
return 0;
}
int fun(char *num)
{
int x=1;int re=0;
for(int i=0;i<8;i++)
{
if(num[i]=='1')
{
for(int j=0;j<7-i;j++)
{x*=2;}
re+=x;
x=1;
}
}
return re;
}
int main1()
{
char str[100];
char str1[9];
char str2[9];
char str3[9];
char str4[9];
cout<<"输入前八位数字:"<<endl;
cin>>str1;
cout<<"再输入八位数字(9-16):"<<endl;
cin>>str2;
cout<<"再输入八位数字(17-24):"<<endl;
cin>>str3;
cout<<"再输入八位数字(25-32):"<<endl;
cin>>str4;
cout<<str1<<str2<<str3<<str4<<"的结果是"<<fun(str1)<<"."<<fun(str2)<<"."<<fun(str3)<<"."<<fun(str4)<<endl;
return 0;
}
大家用的方法我都试过啦,还是不行啊
我的意思是进入DEBUG文件夹后运行.EXE文件测试,屏幕还是一闪而过,没法看清结果,还有没有人明白我的意思呢?
展开
 我来答
我是编程大虾
2007-03-31 · TA获得超过616个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:0
展开全部
#include <iostream.h>
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include <windows.h>
int main4();
int main1();
int main(){
int c;
cout<<"选择你需要的操作:(1为32位二进制数转换成点分十进制。2为点分十进制转换成32位二进制数)";
cin>>c;
switch(c){
case 1:main1();
case 2:main4();
}

return 0;
system("PAUSE");

}
int get_a_string(char *buffer,char*s,int start);
char strs[10][100];
int change(int);
int main4(){
int i,j,k,l,m;
int pos=0;
char buffer[200];
cout<<"输入点分十进制(示例:1.2.3.4):";
cin>>buffer;
for (i=0;i<10;i++){
pos=get_a_string(buffer,strs[i],pos);
if(pos==-1)
break; }
j=atoi(strs[0]);
k=atoi(strs[1]);
l=atoi(strs[2]);
m=atoi(strs[3]);
change(j);
change(k);
change(l);
change(m);
return 0;
}

int get_a_string (char *buffer,char *dest,int pos){
int i=pos,j=0;
while(buffer[i]=='.')
i++;if(buffer[i]=='\0')
return -1;
while (buffer[i]!='.'&&buffer[i]!='\0')
dest[j++]=buffer[i++];
dest[j]='\0';
return i;}
int change(int iNum)
{
char a[9]="";
int i;
if (iNum > 255 || iNum < 0)
{
cout << "the number is not right." << endl;
return 0;
}
for (i = 7;i>=0;i--)
{
if (iNum == 0)
{
for(;i>=0;i--)
{
a[i] = '0';
}
break;
}
if (iNum % 2 == 0)
{
iNum = iNum /2;
a[i] = '0';
}
else
{
iNum = (iNum -1)/2;
a[i] = '1';
}
}
cout << a ;
return 0;
}
int fun(char *num)
{
int x=1;int re=0;
for(int i=0;i<8;i++)
{
if(num[i]=='1')
{
for(int j=0;j<7-i;j++)
{x*=2;}
re+=x;
x=1;
}
}
return re;
}
int main1()
{
char str[100];
char str1[9];
char str2[9];
char str3[9];
char str4[9];
cout<<"输入前八位数字:"<<endl;
cin>>str1;
cout<<"再输入八位数字(9-16):"<<endl;
cin>>str2;
cout<<"再输入八位数字(17-24):"<<endl;
cin>>str3;
cout<<"再输入八位数字(25-32):"<<endl;
cin>>str4;
cout<<str1<<str2<<str3<<str4<<"的结果是"<<fun(str1)<<"."<<fun(str2)<<"."<<fun(str3)<<"."<<fun(str4)<<endl;
system("pause");
return 0;
}
程序作两处修正,在return 0 前面加上system("pause");会出现停顿,在程序最顶端加上头文件<windows.h>
程序经编译、运行,完全符合要求。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhupf
2007-04-01 · TA获得超过280个赞
知道小有建树答主
回答量:683
采纳率:100%
帮助的人:506万
展开全部
int main(){
int c;
cout<<"选择你需要的操作:(1为32位二进制数转换成点分十进制。2为点分十进制转换成32位二进制数)";
cin>>c;
switch(c){
case 1:main1();
case 2:main4();
}

return 0;
system("PAUSE");

}

主函数里的
return 0;放在system("PAUSE"); 后面就可以了.
就不会直接退出了.会等你按任意键后退出,就是改成:
int main(){
int c;
cout<<"选择你需要的操作:(1为32位二进制数转换成点分十进制。2为点分十进制转换成32位二进制数)";
cin>>c;
switch(c){
case 1:main1();
case 2:main4();
}

system("PAUSE");
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
frankqz
2007-03-31 · TA获得超过331个赞
知道小有建树答主
回答量:333
采纳率:0%
帮助的人:0
展开全部
在 include header file 下面加上 " using namespace std;"
这样C++就可意识到"cin" 和"cout"
再一点, 你最好在switch下面加一个"default: cout<<" 提示.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿飞丢了小蝴似c1
2007-03-31 · TA获得超过1788个赞
知道小有建树答主
回答量:1312
采纳率:0%
帮助的人:1164万
展开全部
在return 0;上一行加句system("pause");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式