免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4636 | 回复: 18
打印 上一主题 下一主题

[函数] 为什么getchar()在一个函数结尾用了会不执行呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-26 20:14 |只看该作者 |倒序浏览
大家好,可以告诉我为什么getchar()在一个函数结尾用了会不执行呢?
最好将解决方法也写出来
谢谢了哦  :wink:

论坛徽章:
0
2 [报告]
发表于 2003-12-26 21:03 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

首先把你的包含getchar()的那个函数贴上来

论坛徽章:
0
3 [报告]
发表于 2003-12-26 21:14 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

哦,好的.谢谢你啦
struct student *del(struct student *head)/*<3---------------------------------->;DELETE*/
{
  int num;
  struct student *p1,*p2;
  clrscr();
  printf("\nPLEASE INPUT THE NUMBER WHICH YOU WANT TO DELETE:";
  scanf("%d",&num);
  if(head==NULL)
    {printf("\nlist null\n";
      return(head);
     }
  p1=head;
  while(num!=p1 ->;num&&p1->;next!=NULL)
      {
       p2=p1;
       p1=p1->;next;
      }
  if(num==p1->;num)
      {
        if(p1==head)
               head=p1->;next;
         else
                p2->;next=p1->;next;
          printf("THE %d IS DELETED",num);
          n=n-1;
         }
  else
      printf("%d NOT BEEN FOUND!\n",num);
  gotoxy(2,25);
  printf("LEASE PRESS ANYKEY TO CONTINUE...";
  getchar();
  return(head);
===============================================
  还有一个问题是BOOL GetChar(char *c)是怎么用的啊   

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-12-26 22:18 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

在getchar()前面一句加一行fflush(stdin);
不过你用getchar想做什么呢?

论坛徽章:
0
5 [报告]
发表于 2003-12-26 23:07 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

简单的讲解和例子:

/* getchar()
* Get a character from stdin
* #include <stdio.h>;
* int getchar( void );
*/
#include <stdio.h>;
#include <stdlib.h>;
int main( void )
{
    FILE *fp;
    int c;
    /* Get characters from "file" instead of
     * stdin.
     */
    fp = freopen( "file", "r", stdin );
    while( ( c = getchar() ) != EOF ) {
        putchar(c);
    }
    fclose( fp );
    return EXIT_SUCCESS;
}

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-12-27 02:00 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

原帖由 "lenovo" 发表:
在getchar()前面一句加一行fflush(stdin);
不过你用getchar想做什么呢?


fflush(stdin);

这句是做什么的呢?

论坛徽章:
0
7 [报告]
发表于 2003-12-27 08:48 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

我也以为在getchar()之前加一句fflush(stdin)可以解决问题,但是实际情况不是这样子,下面是我的一个小测试程序,getchar()总是自动返回10,那是scanf留下来的回车符。

#include<stdio.h>;

int
main()
{
    int num,ch;

    scanf( "%d", &num );
    fflush( stdin );
    ch = getchar();
    printf( "ch=[%d]\n", ch );
    return 0;
}

关注中... ...

论坛徽章:
0
8 [报告]
发表于 2003-12-27 10:55 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

用getche()函数

论坛徽章:
0
9 [报告]
发表于 2003-12-27 12:44 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

YEAH!谢谢大家哦.
用了getche()就可以啦,因为我用了clrscr()所以想用这个语句来一个暂停,这样就可以看输出的结果啊,就像分屏显示的哪个样子
不过fflush(stdin);有什么用的
还有哪个BULL GetChar(char *c)怎么用呢?
拜托

论坛徽章:
0
10 [报告]
发表于 2003-12-27 12:50 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

原帖由 "senfar" 发表:
YEAH!谢谢大家哦.
用了getche()就可以啦,因为我用了clrscr()所以想用这个语句来一个暂停,这样就可以看输出的结果啊,就像分屏显示的哪个样子


其实你直接在最后加一句system("AUSE";就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP