在 windows 系統上,C++ 的 system 函數就等同在 cmd 輸入指令,如果你對 cmd 的使用有所涉獵的話,就可以寫一些實用性較高的程式喔!我會陸續打出一些我曾經碰過的用法,若有錯誤請不吝指教,也希望大家分享一下自己的知識喔。
想要在 C++ 的程式碼裡使用 system 函式時,參數部分可以放入
[ 1.字串常數 / 2.字元陣列名稱 / 3.字串指標的名稱 / 4.string 變數 ]。範例如下:
1. system("pause");2. char ca[100]="dir /s";system(ca);3. char* cb="cd /d c:\\"; //跳脫字元system(cb);4. string sa="測試";sa="title "+sa;system(sa.c_str());
注意:因為C++跳脫字元的規則,所以在遇到有('\')、('"')...等字元的時候需額外加上反斜線('\')。
以下為用法連結,這個方面我都是偶然接觸到的,請各位不吝指教。
3.system函數 - title (用途:更換視窗標題)4.system函數 - dir (用途:檢視檔案)5.system函數 - cd (用途:切換或查看路徑)6.system函數 - move (用途:移動檔案)7.system函數 - del (用途:刪除檔案)8.system函數 - ren (用途:重新命名)9.system函數 - md (用途:新建資料夾)10.system函數 - rd (用途:移除資料夾)11.system函數 - comp (用途:比較檔案)12.system函數 - start (用途:開啟或執行檔案)13.system函數 - 大於小於符號 (用途:由檔案輸入或輸出)
(等我文章打好再補上超連結)
文章標籤
全站熱搜

我是個剛接觸c++的新手… 目前最常用到的就是第一個sysytem("pause")..噗 前天看書上有一個語法可以保留執行視窗的畫面(cin.get()) 但是發現,為什麼有時候這句不管用了...(一樣會自動執行到結束,不會停在執行結果的畫面) 於是又改回了system("pause")...請按任何鍵繼續= ="
原因出在用cin來讀取整數或浮點數等型態後,會留下該數值後面的字元,通常是空白或換行字元! 寫一個程式試給你看: #include<iostream> using namespace std; int main() { cout<<"請輸入一個整數 -> "; int ia; cin>>ia; cout<<"請輸入一行字串(文字) -> "; char ca[1000]; cin.getline(ca,1000); cout<<endl<<"你輸入了 "<<ia<<" 和 "<<ca<<"。"<<endl; system("pause"); } 執行結果: 請輸入一個整數 -> 123 請輸入一行字串(文字) -> 你輸入了 123 和 。 請按任意鍵繼續 . . . 你在輸入整數並且按下確定鍵後,你會發現字串裡根本啥都沒有讀到! 因為變數ia在讀完之後留下一個換行字元(確定鍵的換行字元) 然後cin.getline()預設是讀到換行字元為止,所以就把123後面的換行字元獨走,剛好啥都沒讀到。 解決辦法就是記得在讀整行之前,把那個沒用的換行字元讀走。 #include<iostream> using namespace std; int main() { cout<<"請輸入一個整數 -> "; int ia; cin>>ia; cin.get();//把沒用的換行字元讀走 cout<<"請輸入一行字串(文字) -> "; char ca[1000]; cin.getline(ca,1000); cout<<endl<<"你輸入了 "<<ia<<" 和 "<<ca<<"。"<<endl; system("pause"); } 如果有問題再問我唷。
/* AUTHOR : Sheng-Tang Wu * TASK : The following program will convert the individual characters of * a piece of text to their ASCII equivalent and subsequently to a * nominated base and convert base representation of a set of * characters back their character equivalent. * Pre : characters or binary(or other nominated base). * post : convert to ASCII equivalent nominated base or characters. */ #include
#include
#include
#define NUMCHAR 95 /* number of character from 32(space) to 126(~) */
#define NUMDIGITS 7 /* 7 bits for binary storage */
void convertC(FILE *,FILE *,int); /* conversion from character to digit */
void convertD(FILE *,FILE *,int); /* conversion from digit to character */
void ini(char[],char[]); /* initialization */
void creTableC(char[NUMCHAR][NUMDIGITS],int); /* create reference table */
void creTableD(char[NUMCHAR]); /* create reference table */
int nShow(int); /* max digits shown in dedicated base */
int main(void)
{
FILE *ptread,*ptwrite; /* ptread for input ; ptwrite for output */
char a; /* Character read from file */
char filenameIn[FILENAME_MAX]; /* File name for inpput */
char filenameOut[FILENAME_MAX]; /* File name for output */
char extenIn[]=".inp"; /* Extension name for input */
char extenOut[]=".txt"; /* Extension name for output */
char convertType; /* Convert type */
int i,base=0; /* Nominated base */
/* input file name */
do /* repead input until got existing file */
{
printf("\nFile name(.inp) :");
scanf("%s",filenameIn);
for (i=0;i0 && k>=0)
{
rem=ascii%bs; /* bs : base */
if(rem<10) /* for base < 10 */
rem+=48;
else
rem+=55; /* for base >= 10 */
myTable[charPos][k]=(char)rem; /* store remainder in table */
ascii/=bs; /* divide by base */
k--;
}
for (j=0;j<=k;j++)
myTable[charPos][j]='0'; /* fill '0' in rest of column */
}
}
void creTableD(char myTable[NUMCHAR])
/*
* task : create reference table for conversion from digit to character
* pre : 'A'
* post : mytable{33} ;one dimension is enough
*/
{
int i;
for (i=0;i0)
{
bn/=is;
count++;
}
return count;
}
主要是要讓此程式能夠正卻執行轉碼的工作,轉碼範圍可為2到16進位,由輸入檔第二行的數字控制,程式一開始先開啟指定的輸入檔,接著按照檔案中前兩行的指令,將第三行以後的文字或數字轉成另一種資料型式,並將結果儲存於輸出檔,第一行為轉換指令的代碼,D 表示請將編碼後的數值(Digits)轉換為一般的
字元(Characters)並儲存,如為C 則表示請將一般的文元轉成數值型式(2~16 進位制)的資料並儲存。輸入檔第二行的數字為轉碼時所依據的基值(base).
請問convert.c 中的函數convertD要怎麼編寫
這個我大概只能提供你意見吧 因為我學的是C++語法 首先,在開檔案的時候,我會特別把它開成二元檔 用大數除法,求得除以256的餘數 並且強制轉型成char型態,然後再以C++的get()和put()函數來輸出到檔案 記得你的大數要除以256才可以進行下一次迴圈 如果用整數的型態就不用這麼麻煩了...
問一下歐 system裡用的都是DOS命令嗎(因為pause,dev等都是) 順便問一夏如果在LINUX下想執行命令要用啥 那能不能一口氣將一個BAT檔(MS-DOS 批次檔案)的內容全加在一個SYSTEM命令內 感恩XD ---------------------------------------------------------------------------------------------------- http://www.wretch.cc/blog/ldes89150
可以是可以啦 可是打多一點system不就好了xd 然後你想要在linux執行的話 只要查到相關指令就行了
*****