『壹』 c語言怎麼控製得到移動
這里有個用C語言控制屏幕上小飛機運動的代碼,供參考:
#include<stdio.h>
#include<Windows.h>
#include<time.h>
#include"stdio.h"
#include <conio.h>
#define N 35
int scr[22][N]={0},pl=9,width=24,speed=3,density=30;
int score=0,death=0;
void print(int a[][N])
{
system("cls");
int i,j;
for(i=0;i<22;i++)
{
a[i][width-1]=4;
for(j=0;j<width;j++)
{
if(a[i][j]==0) printf(" ");
if(a[i][j]==1) printf("\5");
if(a[i][j]==2) printf(".");
if(a[i][j]==3) printf("\3");
if(a[i][j]==4) printf("|");
if(i==0 && j==width-1) printf("score:%d",score);
if(i==1 && j==width-1) printf("death:%d",death);
if(i==2 && j==width-1) printf("setting:ESC");
}
printf("\n");
}
}
void movebul(int a[][N])
{
int i,j=0;
for(i=0;i<22;i++)
{
if(i==0 && a[i][j]==2)a[i][j]==0;
if(a[i][j]==2)
{
if(a[i-1][j]==3) score+=10,printf("\7");
a[i][j]=0,a[i-1][j]=2;
}
}
}
void movepla(int a[][N])
{
int i,j;
for(i=21;i>=0;i--)
for(j=0;j<width;j++)
{
if(i==21&&a[i][j]==3) a[i][j]=0;
if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;
}
if(a[20][pl]==3&&a[21][pl]==1)death++;
}
void setting(void)
{
int sw=0,i,j;
system("cls");
do
{
sw=0;
printf("\n游戲界面的大小:1.大2.小>>");
switch(getchar())
{
case'1':width=34;break;
case'2':width=24;;break;
default:printf("\n錯誤,請重新選擇...\n");
sw=1;
}
}while(sw);
do
{
sw=0;
printf("\n請選擇敵機密度:1.大2.中3.小>>");
switch(getchar())
{
case'0':density=10;break;
case'1':density=20;break;
case'2':density=30;break;
case'3':density=40;break;
default:printf("\n錯誤,請重新選擇...\n");
sw=1;
}
}while(sw);
do
{
sw=0;
printf("\n敵機的飛行速度:1.快2.中3.慢>>");
switch(getchar())
{
case'1':speed=2;break;
case'2':speed=3;break;
case'3':speed=4;break;
default:printf("\n錯誤,請重新選擇...\n");
sw=1;
}
}while(sw);
for(i=0;i<22;i++)
for(j=0;j<45;j++)
scr[i][j]=0;
scr[21][pl=9]=1;
printf("\n按任意鍵保存...");
getchar();
}
void menu(void)
{
printf("說明:按AD控制我機左右飛行,W發射子彈\n設置:請按Esc\n開始游戲:任意鍵");
if(getchar()==27) setting();
}
void main()
{
menu();
int i=0,j=0;
scr[21][pl]=1;
scr[0][5]=3;
while(1)
{
if(kbhit())
switch(getch())
{
case'a':
case'A':if(pl>0)
scr[21][pl]=0,scr[21][--pl]=1;break;
case'd':
case'D':if(pl<width-2)
scr[21][pl]=0,scr[21][++pl]=1;break;
case'w':
case'W':scr[20][pl]=2;break;
case 27:setting();break;
}
if(++j%density==0)
{
j=0;
srand(time(NULL));
scr[0][rand()%width]=3;
}
if(++i%speed==0) movepla(scr);
movebul(scr);
print(scr);
if(i==30000) i=0;
}
}
『貳』 C語言中 語句的控制
首先輸入字元C,然後先判斷C字元是不是等於空格,如果是則判斷inspace是不是等於0,是則賦值inspace為1,並且輸出字元,如果C不是等於空格,則賦值inspace=0,輸出字元,循環進行判斷
『叄』 C語言怎麼控制循環
#include <stdio.h>
#include <string.h>
int main()
{
int a,b,c;
char s[10],s1[10],s2[10];
printf("請輸入(用空格格開)\n");//你可以去掉這行
scanf("%s",s);
for(;strcmp(s,"a")!=0;scanf("%s",s))
{
strcpy(s1,s);
scanf(" %s %d %d %d",s2,&a,&b,&c);
printf("%s %s %d %d %d\n",s1,s2,a,b,c);//用於測試,你可以去掉這行
}
return 0;
}
要注意的是,輸入的字元串的本身不能包含空格符
『肆』 c語言中的控制字元到底是什麼
c語言中的控制字元是出現於特定的信息文本中,表示某一控制功能的字元。在計算中,一個控制字元或非列印字元,是一個代碼標示(一個數字)是否在字元集,其自身也是書寫字母來描述的。所有輸出在32以下的ASCII表都是這個類型。
(4)c語言控制擴展閱讀:
在ASCII碼中,第0~31號及第127號(共33個)是控制字元或通訊專用字元,如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(振鈴)等;通訊專用字元:SOH(文頭)、EOT(文尾)、ACK(確認)等。
鍵盤上有些鍵沒有對應的ASCII字元或控制字元,這些鍵盤和其所連接的計算機通過三種方法通信:將一些在其他情況下不使用的控制字元定義新的用法、使用其他一些非ASCII的編碼、或者使用由多個字元構成的控制序列。
『伍』 c語言 輸出控制
#include<string.h>
#include<stdio.h>
void delay(int z) //延時函數
{
int x,y;
for(x=11000;x>0;x--)
for(y=12000;y>0;y--)
for(;z>0;z--);
}
char substr(char *p,int i) //求字元串字元函數
{
return *(p+i);
}
main()
{
int i;
char *p="謝謝你的採納!!\n";
char string_char;
for(i =0;i<strlen(p);i++)
{
delay(1000); //延時一秒
string_char = substr(p,i);
printf("%c",string_char);
}
}
『陸』 c語言中什麼是控制字元
ASCII控制字
十進制
代碼
含義
00
NUL
空
01
SOH
標題開始
02
STX
正文開始
03
ETX
正文結束
04
EOT
傳輸結否
05
ENQ
詢問
06
ACK
確認
07
BEL
響鈴
08
BS
退格
09
HT
橫向列表
10
LF
換行
11
VT
縱向列表
12
FF
換頁
13
CR
回車
14
SO
換檔(Shift-Out)
15
SI
換檔(Shift-In)
16
DLE
數據鏈擴展
17
DC1
設備控制1
18
DC2
設備控制2
19
DC3
設備控制3
20
DC4
設備控制4
21
NAK
不確認
22
SYN
同步字元
23
ETB
傳輸塊結否
24
CAN
作廢
25
EM
介質結束
26
SUB
置換
27
ESC
擴展
28
FS
文件分隔符
29
GS
組分隔符
30
RS
記錄分隔符
31
US
單位分隔符
『柒』 C語言是如何控制硬體的
首先,以下寫的東西不是復制粘貼,我會給你詳細的介紹、
1,要知道,計算機的發展規律是離硬體越來越遠,離人類的自然語言越來越近。為什麼這么說呢。
計算機語言的發展是:機器語言,匯編語言,高級語言,第四代語言,和自然語言。。
對於機器語言,只能識別二進制。而二進制就是0和1.0和1代表的是開關。比如1代表關閉,0代表打開。那麼每一台進算計的開關都不一樣,也就是硬體都不一樣,所以機器語言沒有移植性。
對於匯編語言,就是把機器語言用助記符來代替。比如,機器語言,如果是個8位的,11001010,都很難記。更別說16位的了。那麼用助記符來代替他們,會容易些。比如用add,表示加,那麼不用記那麼長的數了。其他的兩者並沒有什麼太大的區別。也沒有移植性。
對於高級語言,就是C語言,他具有很強的可移植性。因為他有專門的編譯器。可以把C語言編譯成機器語言。所以對於高級語言,只有在編譯的時候才去操宗硬體。
比如:
#include<stdio.h>
void main()
{
int a;
a=20;
printf("a=%d\n",a);
}
這里,定義一個a是一個整型,那麼硬體就分配給他4個位元組或者8個位元組(不同的軟體不一樣),那麼這個就是一個硬體操縱。當然只有在編譯的時候才對硬體進行操縱。
這也說明其可移植性強。因為對每一台電腦都可以這樣下指令的。
再往後的第四代語言,就是面向問題的語言了。就是指需要告訴電腦需要怎麼做,不需要告訴電腦應該怎麼做,離硬體更遠了。因為你只需要讓a等於20,但不需要告訴電腦分配給a幾個位元組,電腦自己會搞定的。
對於自然語言就是人類自己的語言了,更不需要操縱硬體了。
其實C語言可是說是一種中級語言,既有匯編的優勢,也有高級語言的優勢。
像我學的單片機,用C控制流水燈的亮滅。就是直接通過C的操縱單片機的P1口引腳來進行的。有空你可以了解下。
『捌』 C語言控制符
\在C裡面可以輸出特殊符號, 比如說 \" 輸出的就是雙引號, 因為如果直接輸出雙引號的話, 程序會分成兩個字元串, 所以這里需要\ 再比如說如果輸出\ 也是不能直接輸出的, 需要\\ 第一個\ 表示輸出它後面的特殊字元, 第二個就是需要輸出的字元 \n表示回車, 因為你寫程序的時候不能在輸出語句里直接回車, 所以需要\n \" 也是一樣的道理, 只是n是一個特殊的代碼表示回車前面加上\ 就能正常輸出了
『玖』 C語言的9種控制語句是什麼啊
C語言9種控制語句
①if( )~else 條件語句
②for( )~ 循環語句
③while( )~ 循環語句
④do~while( ) 循環語句
⑤continue 結束本次循環語句
⑥break 中止執行switch或循環語句
⑦switch 多分支選擇語句
⑧goto 轉向語句
⑨return 從函數返回語句
(9)c語言控制擴展閱讀
基本特性
1、高級語言:它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。
2、結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
3、代碼級別的跨平台:由於標準的存在,使得幾乎同樣的C代碼可用於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要進行硬體操作的場合,優於其它高級語言。
4、使用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。
參考資料
C語言--網路
『拾』 C語言中控制問題
控制台是很憋屈的,最簡單的方法是接受到控制字元,比如你列出的,你需要先清屏,然後重畫,控制台本來就是輸出字元的,根本不支持正經的繪圖,都是字元拼湊的,雖然很多命令像DOS,但本質上不是DOS,沒有dos的繪圖功能,不過畢竟還是winows窗口,好像也能得到他的HDC,這樣你通過HDC畫圖(這只是聽說可以,沒試過,很多人也說控制台無法用常規方法畫圖),具體有點復雜,如果沒學過沒辦法給你說清除。。。
控制台就不要玩這種動態的東西,如果你希望這樣,為什麼不建立正經的windows窗口。。。。