当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Damned Carriage Return | 该死的回车 [未完]
帖子发表于 : 2008-07-02 2:07 
头像

注册: 2006-09-21 14:28
帖子: 2376
送出感谢: 0 次
接收感谢: 0 次
近乎完美解决方案
http://forum.ubuntu.org.cn/viewtopic.ph ... dd8b5541f0

问题代码:
代码:
//  Damned Carriage Return
//  Last Modified: 2008-07-02
//  edcr1.c

#include <stdio.h>
#include <stdlib.h>


void get(int *a)
{
  printf("\n");
  printf("\n a = %d ", *a);
}

void set(int *a)
{
  printf("\n");
  printf("\n a = ");
  *a = getchar();
  printf("\n seted ");
}

int main(int argc, char** argv)
{
   int a = 15;
   int key;
   
   while (1)
   {
     system("clear");
     printf("\n");
     printf("\n");
     printf("\n  Menu ");
     printf("\n");
     printf("\n 1. get ");
    
     printf("\n");
     printf("\n 2. set ");
     printf("\n   ");
    
     key = getchar();
    
     switch (key)
     {
       case '1':
         get(&a);
         break;
        
      case '2':
        set(&a);
        break;
       
      default:
        goto QUIT_FLAG;
        break;
    }
  }
 
  QUIT_FLAG:
   return 0;
}


正常代码
代码:
//  Damned Carriage Return
//  Last Modified: 2008-07-02
//  edcr2.c

#include <stdio.h>
#include "stdiol.h"


void get(int *a)
{
  printf("\n");
  printf("\n a = %d ", *a);
}

void set(int *a)
{
  printf("\n");
  printf("\n a = ");
  *a = getch();
  printf("\n seted ");
}

int main(int argc, char** argv)
{
   int a = 15;
   int key;
   
   while (1)
   {
     system("clear");
     printf("\n");
     printf("\n");
     printf("\n  Menu ");
     printf("\n");
     printf("\n 1. get ");
    
     printf("\n");
     printf("\n 2. set ");
     printf("\n   ");
    
     key = getch();
    
     switch (key)
     {
       case '1':
         get(&a);
         break;
        
      case '2':
        set(&a);
        break;
       
      default:
        goto QUIT_FLAG;
        break;
    }
  }
 
  QUIT_FLAG:
   return 0;
}



代码:
#ifndef __STDIOL_H__
#define __STDIOL_H__

#include <stdio.h>
#include <stdlib.h>


int getch(void)
{
  int key;
  system("stty raw");
  key = getchar();
  system("stty cooked");
  return key;
}


#endif


睡觉,晚上继续


_________________
http://lee.youxu.info/


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译