Tag: turbo c

想在C中使用while创建菱形

我使用for循环创建了钻石,但我无法将其转换为While。 你能帮助我用While循环来实现同样的目标吗? 我尝试了几次循环,但它正在运行无限时间。 #include #include int main() { clrscr(); int i, j, k; for(i=1;i<=2;i++) { for(j=i;j<5;j++) { printf(" "); } for(k=1;k=1;i–){ for(j=5;j>i;j–) { printf(” “); } for(k=1;k<(i*2);k++) { printf("*"); } printf("\n"); } getch(); }

解压缩在中间停止,输出文件用零填充(BLACK PIXELS)?

我试图在bmp(位图)文件上应用DCT(离散余弦变换)压缩。 我有一个我在Turbo C ++中运行的ac文件。 这实际上并没有压缩,但我试图实现DCT和IDCT。 代码如下: /* the image to be compressed is a bmp with 24 bpp and with name “college4.bmp” of dimensions 200*160 ie 25*20- 8*8 blocks o/p is college2.dat format: 8 bit signed integers starting rowwise from 0,0 to 8,8 the coefficients order is blue,green,red for the block no 1 then 2 […]

退格并删除DOS中getch()函数的问题

我在Windows平台Intel x86架构上使用Turbo C编译器。 在我的程序中,我正在从键盘扫描用户输入。 它是一个登录密码程序,它将用户名和密码作为用户输入。 对于我使用getchar()的用户名,如果用户按下退格键输入用户名,在键盘上,前一个字符被删除,就我自己而言,我的意思是我不需要写任何显式代码做这个。 但是对于密码我使用getch()并且对应于每次按键我在屏幕上显示*。 在这种情况下,如果用户按下键盘上的退格键,它不会删除前一个字符,而是将其作为另一个键击,并在屏幕上显示与其对应的*。 我从bios.h尝试了bioskey,尝试使用\ b来解决,没有工作。 任何建议或解决方法…… ????

Turbo Carrays问题

我只是想问一下我的代码。 #define LIM 40 main() { int day=0; float temp[LIM]; clrscr(); do { printf(“Enter temperature for day %d.”, day); scanf(“%f”, &temp[day]); } while(temp[day++] > 0) } 我正在使用TurboC,此代码重复要求用户输入温度并将响应存储在数组temp中 ,直到输入0或更低的温度。 我已经使用#define指令给标识符LIM赋值40,因为我希望这个程序接受任意数量的温度,最多可达40个。 但它实际上接受了多达48个 ……我该怎么做才能使它能够只接受40个? 提前致谢

使用Turbo C ++ 3.0处理键盘中断

我有一个项目。 这是一个简单的游戏,“Falling Blocks”。 游戏区域被视为网格,其大小为20×20。 屏幕顶部会出现下降的块,底部会有一个英雄,他们会射击这些块。 游戏的目标是在他们达到底线之前拍摄块。 他总是处于底线。 每当用户按下键盘上的空格键时,我将生成一个子弹,并且英雄用左右箭头键在底线上移动。 我不知道用Turbo C ++ 3.0处理这些键盘中断。 禁止使用“dos.h”和“int 21H”。 你能给我一些关于这些项目的提示吗? 编辑:我发现了这些信息,但我无法理解如何实现它: 当在键盘上按下键时,产生中断以及名为“生成代码”的扫描代码,并且当释放该键时,键盘控制器产生“中断代码”。 在PC上,键盘由芯片控制并分配给端口号60h和61h。 在键盘上按下键时,扫描值将在60h时进行注册。 您可以使用以下命令获取此扫描代码:在al,60h获取扫描代码后,您必须使用以下命令重置键盘编程61h芯片的命令寄存器:al,61h或al,82h out 61h ,al和al,7fh out 61h,al在每个中断服务程序结束时,清除PIC服务位,发送中断结束(EOI)命令,20h到地址20h的PIC端口。 mov al,20h out 20h,al

在旧的Borland C中使用Visual C ++ DLL?

我必须使用旧的Borland编译器(BC 5)支持用C编写的旧应用程序。 不幸的是,我们使用的旧TCP / IP库开始显示它的年龄,并且遇到了Vista和Win7机器的问题。 我有一个新的MS Visual C ++函数库,我想用它来制作一个可以从Borland C调用的DLL。 所以,我有两个问题:1)如何使一个Visual C ++ DLL可以从Borland C程序调用,2)如果它是可调用的,如何从普通的旧C调用C ++函数? 理想情况下,整个项目应该转换为Visual C,但是有许多遗留function可以使该项目成为一项重大任务! 我正在寻找一个快速补丁来让它保持活力一段时间:) 史蒂夫

变量的前后增量运算在TC和gcc上给出不同的输出

这是我的简单代码…… #include int main() { int i=5; printf(“%d %d %d %d %d “,i++,i–,++i,–i,i); return 0; } 在gcc上,它输出为“4 5 5 5 5” 但在TC上,它输出为’4 5 5 4 5′ 我知道在printf语句中,如果是单个表达式,则评估将从左到右,但在正常语句中,它将从左到右。 但是如果printf包含多个表达式,那么评估将在堆栈上,元素将从左到右推入堆栈,但从右到左弹出,这certificateTC输出是正确的 请纠正我在哪里错了???

BGI错误,如何解决?

我想运行一个绘制圆圈的C程序。 该程序正在编译,没有错误,它正在运行。 从用户获取像radius这样的值后,我得到如下错误: BGI error: Graphics not initialized ( use “initgraph”) 即使在我的源代码中我添加了这一行: int gmode,gdrive=DETECT; initgraph(&gdrive,&gmode,”c\\tc\\bgi”); 我仍然得到错误。 我正在使用Windows,我无法弄清楚我哪里出错了。 在这方面有人可以帮助我吗? 提前致谢。

当我按下键盘上的键时,如何防止重复的字符

我试图学习如何防止键盘发送多个字符到屏幕和DOS下扫描。 我正在使用带有内联汇编的Turbo-C。 如果键盘上输入的字符是: 嗯嗯嗯嗯 在控制台上看到并由scanf处理的字符将是: 我的名字是Haim 基本输出来自C中的代码,我不允许触摸。 我必须实现eliminate_multiple_press和uneliminate_multiple_press而不触及uneliminate_multiple_press的代码。 我到目前为止写的Turbo-C代码是: #include #include #include volatile char key; volatile int i=0; void interrupt (*Int9save) (void); void interrupt kill_multiple_press() { asm{ MOV AL, 0 MOV AH,1 INT 16h PUSHF CALL DWORD PTR Int9save MOV AX,0 } asm{ JZ notSet MOV key, AL MOV AH, 04H INT 16H } notSet: […]

使用Turbo-C的C中的Windows.h.

我在Turbo C的include文件夹中找不到windows.h,因此无法使用Win32 api 有人可以建议一个解决方法吗? 谢谢