❶ 關於c++Builder XE英文版本編譯問題
第一個問題:
\n 和 endl 表示回車。
第二個問題:
1、gets(str);
是從緩沖區中讀取字元串,然後保存到數組str中直到遇到回車符,換行符不作為字元串的內容,讀取的換行符會轉換為NULL值,由此標志程序的結束。
2、cin.getline(char*line,int size,char ='"n')是讀入一行字元,第二個參數是本次讀取的最大字元個數,第三個參數是分隔字元,作為讀取一行結束的標志,默認是\n。
3、cin.get()第一個用法,是讀入一個字元。 cin.get()第二個用法,也是輸入一行(同cin.getline()),但是區別就是,不輸出分隔符
補充一下:
cin.getline() 與 cin>>str 的一個不同是,前者輸入一行,行中可以包含空格,後者卻以空格或回車作為字串結束,不包含空格。
補充:get() 和getline()的異同
1)相同點:
要獲取一行的輸入,標准流類的成員函數getline(),get()都有三個參數,比如getline(char*line,int size,char ='\n')。其中第一個參數指向存儲結果字元的緩沖區指針,第二個表示緩沖區大小(本次讀取的最大字元個數,不能夠超過其限度),第三個表示知道什麼時候停止讀輸入的終止符(讀取一行結束的標志)。終止符有一個經常用到的預設值"\n"。兩個函數遇到輸入終止符時,都把零儲存在結果緩沖區里。
2)不同點:
1.一般來講,get()一次讀入一個字元,getline()一次讀入一行字元
2.在處理字元串時,get()遇到輸入流的分隔符時就停止,而不從輸入流中提取分隔符。比如用cin.get(myarray1,20,'*'); 處理字元串1111*2222,碰到*就停止。cout<<myarray1;會輸出1111。然後再調用cin.get(ch1),cout<<ch1;輸出的還是這個分隔符*。getline()與其相反,它從輸入流中提取分隔符,但仍沒有把它儲存在結果緩沖區里。如果用cin.getline(myarray2,20,'*');處理上面同樣的字元串1111*2222,碰到*停止。 cout<<myarray2;會輸出1111。然後再調用cin.get(ch2),cout<<ch2;輸出的是分隔符後面的2。
3)代碼演示:
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
char myarray1[20],myarray2[20];
cin.get(myarray1,20,'*');
cout<<myarray1;
char ch1;
cin.get(ch1);
cout<<ch1;
cin.getline(myarray2,20,'*');
cout<<myarray2;
cin.get(ch1);
cout<<ch1;
}
4)read 函數和 write函數
最近開始從事搜索引擎的工作,所以又重新開始了c/c++的旅程,時隔4年
不得不復習一下c/c++其中的內容,以下內容有網上別的朋友發表的,也有我自己總結的.
1. read
#include
ssize_t read(int filedes, void *buf, size_t nbytes);
返回值:讀取到的位元組數;0(讀到 EOF);-1(出錯)
read 函數從 filedes 指定的已打開文件中讀取 nbytes 位元組到 buf 中。以下幾種情況會導致讀取到的位元組數小於 nbytes :
A. 讀取普通文件時,讀到文件末尾還不夠 nbytes 位元組。例如:如果文件只有 30 位元組,而我們想讀取 100
位元組,那麼實際讀到的只有 30 位元組,read 函數返回 30 。此時再使用 read 函數作用於這個文件會導致 read 返回 0 。
B. 從終端設備(terminal device)讀取時,一般情況下每次只能讀取一行。
C. 從網路讀取時,網路緩存可能導致讀取的位元組數小於 nbytes 位元組。
D. 讀取 pipe 或者 FIFO 時,pipe 或 FIFO 里的位元組數可能小於 nbytes 。
E. 從面向記錄(record-oriented)的設備讀取時,某些面向記錄的設備(如磁帶)每次最多隻能返回一個記錄。
F. 在讀取了部分數據時被信號中斷。
讀操作始於 cfo 。在成功返回之前,cfo 增加,增量為實際讀取到的位元組數。
2. write
#include
ssize_t write(int filedes, const void *buf, size_t nbytes);
返回值:寫入文件的位元組數(成功);-1(出錯)
write 函數向 filedes 中寫入 nbytes 位元組數據,數據來源為 buf 。返回值一般總是等於 nbytes,否則就是出錯了。常見的出錯原因是磁碟空間滿了或者超過了文件大小限制。
對於普通文件,寫操作始於 cfo 。如果打開文件時使用了 O_APPEND,則每次寫操作都將數據寫入文件末尾。成功寫入後,cfo 增加,增量為實際寫入的位元組數。
From : antigloss
❷ 用VS2010將英文程序源碼編譯以後,中文界面語言顯示亂碼
在vc6.0中默認的編碼是Ascii編碼,VS2010中默認的編碼是Unicode編碼,你可以設置你的VS2010編譯器中的字元編碼為Ascii
,你可以將代碼修改成
MessageBox(hwnd,(LPCWSTR)CString("OK"),(LPCWSTR)CString("顯示"),0);
就可以啦
❸ 用vc++6.0英文版編寫c程序的詳細步驟。
【回答】 具體步驟:1、打開軟體(雙擊);2、點擊左上角那個【新建】按鈕(工具欄第一個按鈕);3、然後點擊【保存】按鈕(工具欄第三個), 選路徑到一個空的文件夾(可以自己新建一個),如何【確定】保存; 3、接下來,就可以 在【編輯】C++語言了,如:#include<iostream>
#include<string>
using namespace std;void main()
{
cout<<"選我吧!"<<endl;
}4、編輯完了之後,直接按F5(或Ctrl+F5)鍵,這時會彈出提醒,不用理,直接回車回車再回車!就可以編譯運行了! 【注意:】以上步驟,我是用最簡單的方法來說的,以便樓主容易掌握。用菜單也可以,但是麻煩多了。如果以後學VC活其他高級語言了,就不用這個方法了,但是樓主也那時肯定會其他方法了! 【建議】其實如果只是編C,而沒有C++的話,建議用win-tc就可以了:http://www.onlinedown.net/soft/32364.htm因為VC是比較大的軟體,運行也相對緩慢些,到學C++活VC++的時候再用VC6吧~
❹ visual c++ 2010 express(英文版)如何編譯c語言新手
首先建立一個項目,如果只是編譯c的話,選擇空項目就行了,然後在左邊的窗口裡會有3個文件夾,在第2個(源文件)上右擊點擊添加-新建項-選擇c++文件,然後取名的時候以.c結尾就是c,以.c++結尾就是c++默認為c++。如果你有頭文件的話,在第一個文件夾里添加-新建項-頭文件就行了。
❺ 用c語言編譯執行時輸入英文,結果顯示中文是為什麼
我認為是代碼的問題。
我用的也是vc6,中文綠色版,Win7,64位的系統。從來沒出現由於軟體不兼容導致程序停止運行的問題。
用該VC6.0編過小程序,也編過一個程序幾千行的代碼,有出現過某某.exe已停止工作的問題。
從來都是代碼的問題。
有可能是讀寫了非法內存。有可能是控制項(比如窗口之類的),信號之類的。
中文版本並不妨事兒,沒有中文路徑就和英文的一樣了。
❻ 誰知道在哪裡可以找到翻譯C語言編譯器中英文解釋的
雅虎翻譯
❼ 英語編譯程序怎麼翻譯
編譯程序一般翻譯為compiler。
實際上在整個編譯過程中會用到很多的工具,預處理器、編譯器、匯編器、定位/分配器、連接器。
❽ visual c++ 2010 express(英文版)如何編譯c語言新手
File->New->Project
在打開的New Project對話框中最左側一欄中選擇Visual C++下面的CLR,之後在其右側的區域中選擇CLR Empty Application
並在下面的三個文本框中填入工程名稱(Name),工程位置(Location)以及解決方案名稱(Solution Name)
之後單擊OK
然後可以解決方案瀏覽器中看到剛才新建的工程,右擊工程名,選擇Properties(屬性),在打開的對話框中選擇Configuration Properties(配置屬性)下面的General(一般),然後將右邊對話框中的Common Language Runtime Support(CLR支持)改為"No Common Language Runtime Support",然後點擊確定退出
接下來右擊工程中的Source Files,選擇Add->New Item...,在打開的對話框中選擇「C++ File(.cpp)",並在下方輸入一個以.c結尾的文件名,之後點擊Add,之後就可以在這個文件中加入C語言代碼,按F5就可以調試運行了。
❾ C++ 程序。中文字在英文系統下顯示亂碼。修改代碼中相應的 中文字,變異程序後,依舊為亂碼。請高手指點。
有如下幾個因素可以考慮一下:
1、源碼文件本身是以什麼編碼格式存儲的,一般有中文存在的時候是以unicode編碼格式存儲,英文系統一般沒有unicode編碼庫,所以找不到相應字元,建議改成ASCII編碼;
2、你的代碼中字元串的存儲是用的寬字元集還是窄字元集,全都改成窄字元集,用ASCII編碼,應該就不會顯示亂碼了