注册 登录
编程论坛 C++教室

c语言经典程序这一题怎么做

windyfzz 发布于 2010-07-27 18:08, 1028 次点击
【程序32】
题目:Press any key to change color, do you want to try it. Please hurry up!
按他给的答案做了一遍
#include<iostream>
#include<stdlib.h>
using namespace std;
#include<conio.h>
int main()
{
    int color;
    for(color=0;color<8;color++)
    {
        textbackground(color);
        cprintf("this is color %d\r\n",color);
        cprintf("press any key to continue\r\n");
   
    }
    system("PAUSE");
    return 0;
}

结果有错误 error C2065: 'textbackground' : undeclared identifier

我看这个例子也不知道textbackground它是什么,但是给的答案上就是这个。

谁能告诉我并把这个源码改下调试出来。
谢谢!
5 回复
#2
windyfzz2010-07-27 18:16
补充一下 我用的是VC6.0,网上查了下说VC上没textbackground这个函数,那我用VC就调不出来了吗?会的告知一下,谢谢!
另外为什么是cprintf,C 语言不是printf吗?
#3
gq1987182010-07-30 09:46
函数名: textbackground   
功 能: 选择新的文本背景颜色   
用 法: void textbackground(int color);
头文件: 包含在conio.h头文件中,但是在vc的conio.h中找不到这个函数,TC中有;
#include<iostream>//这是c++ IO
using namespace std;
当然c++输出可以用cout,cprintf,printf;
在原来的C语言中,cprintf中的c代表console,就是控制台.(conio.h中的con也是这个意思)到了windows也继承了这个渊源.
按照设计者本来的意图,printf是标准输出,就是指可以完全不知道你输出的对象,只是以标准的文本流方式输出.cprintf是与终端相关的,要用到一些系统平台,硬件设备相关的特性,所以可以有颜色等很多东西可供选择,同时也削弱了移植性所以cprintf是非标准的.

比如\n   和\n\r在printf和cprintf当中都是另起新行的作用,但是在文本流中只需要输出\n这个标准控制命令就可以起到行数加一同时列数置零的作用(如果输出被导向到屏幕).但是在控制台方式下,由于直接面对的是屏幕,那么这个命令被拆成两个动作:1)行数加1,即光标下移一格.2)列数置零,即光标回到同一行的最左端.而这两个动作在标准方式下是没有意义的,因为输出的对象不一定是屏幕那么 "光标位置 "也是不存在的了.
#4
gq1987182010-07-30 09:53
建议楼主放到TC上去调试看看
#5
windyfzz2010-07-30 16:03
回复 4楼 gq198718
恩,谢谢你!
#6
liveningning2010-08-03 11:12
建议先调试。。。
再确定。。。
1