为什么我用C语言编写的程序末尾加上了getchar();调试的时候还是关闭了窗口?

#include <stdio.h>
#include <string.h>
void fun(char a[],char b[],int n)
{int i;
for(i=0;i<n;i++)
b[i]=a[i];
for(i=n+1;i<strlen(a);i++)
b[i-1]=a[i];
b[i-1]='\0';
}
main()
{char a[100],b[100];int n;
printf ("please print a string:");
gets (a);
printf("\n");
printf ("please print a number:");
scanf("%d",&n);
fun(a,b,n);
puts(b);
getchar();
}

说说我的个人看法

在c中用scanf输入时 键盘的输入是先保存在内存的一个缓冲区中

而你的程序执行到scanf("%d",&n);时 你输入的是 一个数字 和回车
scanf("%d",&n);语句 接受了那个数字

回车符则放在了缓冲区

当最后getchar();时 getchar();会接受那个回车符

所以就结束了

你可以在末尾再加一句getchar();

应该就没问题了

嗯 在vc中使用getchar();
如果是tc的话 就用getch();吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-19
兄弟,估计你多了个回车符

你再加个getchar(),也就是用两个getchar()估计就会OK的。
第2个回答  2009-09-19
scanf流里有回车符 得多加一个getchar()

下面这个应该行了
#include <stdio.h>
#include <string.h>
void fun(char a[],char b[],int n)
{int i;
for(i=0;i<n;i++)
b[i]=a[i];
for(i=n+1;i<strlen(a);i++)
b[i-1]=a[i];
b[i-1]='\0';
}
main()
{char a[100],b[100];int n;
printf ("please print a string:");
gets (a);
printf("\n");
printf ("please print a number:");
scanf("%d",&n);
fun(a,b,n);
puts(b);
getchar();
getchar();
}
第3个回答  2009-09-19
。。你可以试试system("pause");包你程序会卡到这句上。当然随便按个键,程序就继续跑了。头文件stdlib.h
第4个回答  2009-09-19
是加getch();而不是 getchar();

麻烦帮我看下这个C语言程序为什么后面加了getchar();还是闪一下就退了...
位置错误,return 后程序就结束了,所以getchar应该在return前面!改为如下:include <stdio.h> int a,b,sum;int main(){ a=123;b=234;sum=a+b;printf("sum is %d\\n",sum);getchar();\/\/放在return前 return 0;}

C语言:为什么加了函数getchar后还是闪退啊
要加两个。因为你之前输入数字的时候按了回车键,然后它被这个getchar()吃掉了。要避免一闪而过更好的办法是:在源文件开头添加:#include <stdlib.h> 然后在main里面return上一行添加: system("pause");

C语言编译出来出现黑色窗口什么都没有?
因为代码里面没有加入暂停语句,所以程序运行完后就自动关闭了在最后加入一个getchar()就OK了或者包含头文件stdlib.h再在最后加入一句system("pause");

有的C语言程序在最后写上一句get char(); 是什么意思啊
有些编译器在执行完程序后会自动关闭输出界面,俗称“闪退”,加上getchar();,意思是等待用户从键盘输入一个按键,这样可以解决闪退问题。解决闪退的方法有多种,这只是其中一种。另外,getchar()是一个完整的函数,中间没有空格。

为什么我的运行程序 例如C语言编写出的程序 黑框出来后立即就会...
因为程序运行完了,所以就自动关闭了.两种解决方法,都是在代码最后的return前面加代码:1.getchar();\/\/代码要求输入一个数,你不输的话就一直停在这里,就能看结果了.2.system("pause");\/\/代码运行到这里的时候会停下,你就能看结果了.

有些C语言程序末尾放一个getchar()什么意思?
让界面卡住,显示在那里,等待输入任意字符后,程序才会结束退出,主要是方便看前面的结果,比如在进入调试时,如果没有getchar,界面会一闪就关闭了,看不到输出的结果

c语言最后加上getchar( ),有什么用啊
程序末尾的getchar()语句功能:执行执行完毕后不立即返回代码窗口,等待回车后再返回,便于查看运行结果。\/\/题主说没有它也是一样,其实是因为题主按的是开始执行(不调试)(ctrl+F5),而另外几个答主回答的是按开始调试(F5)

C语言编程用Dev C++运行时怎么加了getchar()还是不行呢
比如程序只有输出,那么最后的getchar 就等待输入,起到暂停的作用 如果程序需要输入,那么最后会有一个回车,就让getchar 读取了,于是暂停就失效了

我用C语言编的程序总是闪退
VS编译器的问题,貌似在return 0;之前加上个getchar()就可以了。这个是编译器的差异,以前用win_tc的时候后面必须加上getch();

C语言程序编译成功了,执行时候 输入数字后回车 程序自动关掉了
因为程序执行完毕退出了,界面被windows关掉了~ 所以你看到的现象是程序自动关掉。以下3种方法可以让你直接在屏幕上看到运行结果,避免程序直接退出而看不到输出信息:1.在cmd命令行里面运行你的程序。2.在程序main函数return之前加入两个getchar();函数调用 3.在程序main函数return之前加上一行system( "...

相似回答