0

关于投票
Visual C++中使用gotoxy() / clrscr()等函数

#include < windows.h >

void clrscr(void);
void clreol(void);
void clreoscr(void);
void gotoxy(int ,int );

// --- Funktionsimplementierung

/*********************************************************************************/

void clrscr(void)  //clearscreen: gesamten Bildschirm leeren
{
    CONSOLE_SCREEN_BUFFER_INFO    csbiInfo;                            //variablendklaration
    HANDLE    hConsoleOut;
    COORD    Home = {0,0};
    DWORD    dummy;

    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

    FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);    //bis cursorposition leerzeichen ausgeben
    csbiInfo.dwCursorPosition.X = 0;                                    //cursorposition X koordinate festlegen
    csbiInfo.dwCursorPosition.Y = 0;                                    //cursorposition Y koordinate festlegen
    SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);    //den cursor an die festgelegte koordinate setzen
}

/*********************************************************************************/

void clreol(void)  //clear end of line: den rest der Zeile nach dem cursor l鰏chen
{
    CONSOLE_SCREEN_BUFFER_INFO        csbiInfo;                            //variablendklaration
    HANDLE    hConsoleOut;
    COORD    Home,pos;
    DWORD    dummy;

    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

    Home = csbiInfo.dwCursorPosition;
    pos.X = 80 - csbiInfo.dwCursorPosition.X;

    FillConsoleOutputCharacter(hConsoleOut,' ',pos.X,Home,&dummy);
}

/*********************************************************************************/

void clreoscr(void)  //clear end of screen: alles nach dem cursor l鰏chen
{
    CONSOLE_SCREEN_BUFFER_INFO        csbiInfo;                            //variablendklaration
    HANDLE    hConsoleOut;
    COORD    Home;
    DWORD    dummy;

    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

    Home=csbiInfo.dwCursorPosition;
    FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);
}

/*********************************************************************************/

void gotoxy(int x,int y)  //cursor an gewuenschte position auf dem bildschirm setzen
{
    CONSOLE_SCREEN_BUFFER_INFO        csbiInfo;                            //variablendklaration
    HANDLE    hConsoleOut;

    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

    csbiInfo.dwCursorPosition.X = x;                                    //cursorposition X koordinate festlegen
    csbiInfo.dwCursorPosition.Y = y;                                    //cursorposition Y koordinate festlegen
    SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);    //den cursor an die festgelegte koordinate setzen
}


系统分类: 软件开发
用户分类: C/C++
标签: 无标签
来源: 无分类
发表评论 阅读全文(879) | 回复(1)

0

关于投票
putchar()、getch()、getche()和getchar()函数
getch()、getche()和getchar()函数
    (1) getch()和getche()函数
    这两个函数都是从键盘上读入一个字符。其调用格式为:
     getch();
     getche();
    两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche()
函数却将读入的字符回显到显示屏幕上。
    例1:
     #include
     main()
     {
          char c, ch;
          c="getch"();     /*从键盘上读入一个字符不回显送给字符变量c*/
          putchar(c);    /*输出该字符*/
          ch="getche"();   /*从键盘上带回显的读入一个字符送给字符变量ch*/
          putchar(ch);
     }
    利用回显和不回显的特点, 这两个函数经常用于交互输入的过程中完成暂停
等功能。
    例2:
     #include
     main()
     {
          char c, s[20];
          printf("Name:");
          gets(s);
          printf("Press any key to confinue...");
          getch();  /*等待输入任一键*/
     }
 
    (2) getchar()函数
    getchar()函数也是从键盘上读入一个字符, 并带回显。它与前面两个函数
的区别在于: getchar()函数等待输入直到按回车才结束,  回车前的所有输入字
符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。
    getchar()函数的调用格式为:
     getchar();
    例3:
     #include
     main()
     {
          char c;
          c="getchar"();   /*从键盘读入字符直到回车结束*/
          putchar(c);    /*显示输入的第一个字符*/
          getch();       /*等待按任一健*/
     }
系统分类: 资源共享
用户分类: C/C++
标签: 无标签
来源: 整理
发表评论 阅读全文(631) | 回复(0)

0

关于投票
memset函数
memset
  原型:extern void *memset(void *buffer, int c, int count);
        
  用法:#include <string.h>
  
  功能:把buffer所指内存区域的前count个字节设置成字符c。
  
  说明:返回指向buffer的指针。
  
  举例:


      // memset.c
      
      #include <syslib.h>
      #include <string.h>

      main()
      {
        char *s="Golden Global View";
        
        clrscr();
        
        memset(s,'G',6);
        printf("%s",s);

        getchar();
        return 0;
      }

Memset  用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’‘\0’

:char a[100];memset(a, '\0', sizeof(a));

memcpy  用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度。

例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。

Strcpy   就只能拷贝字符串了,它遇到'\0'就结束拷贝。

例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘\0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。

 

memset主要应用是初始化某个内存空间。
memcpy
是用于copy源空间的数据到目的空间中。
strcpy
用于字符串copy,遇到‘\0’,将结束。

系统分类: 软件开发
用户分类: C/C++
标签: 无标签
来源: 整理
发表评论 阅读全文(1639) | 回复(1)

0