讀取數值我是比較新的C++編程,我已經在這一切的打了我的第一次重大碰壁之一..最好的方法,從文件
我試圖找出如何閱讀來自記事本上的通用「.txt」文件的值/字符。通過比較,我想確定是否讀取整行,但我似乎無法讀取單個一位或兩位數字,我使用{'buffername'.getline(variable ,size)}但是當我嘗試將'size'改爲一個特定的數字時,它給了我一個比較錯誤,指出它無效切換到'int'或'char'(取決於我如何聲明變量)。
任何幫助表示讚賞。 感謝
讀取數值我是比較新的C++編程,我已經在這一切的打了我的第一次重大碰壁之一..最好的方法,從文件
我試圖找出如何閱讀來自記事本上的通用「.txt」文件的值/字符。通過比較,我想確定是否讀取整行,但我似乎無法讀取單個一位或兩位數字,我使用{'buffername'.getline(variable ,size)}但是當我嘗試將'size'改爲一個特定的數字時,它給了我一個比較錯誤,指出它無效切換到'int'或'char'(取決於我如何聲明變量)。
任何幫助表示讚賞。 感謝
int length = 2;
char * buffer;
ifstream is;
is.open ("test.txt", ios::binary);
// allocate memory:
buffer = new char [length];
// read 2 char
is.read (buffer,length);
//Compare the character and decide
delete[] buffer;
return 0;
好吧,這看起來像是我嘗試使用的代碼塊的一個很好的解決方案。我會試一試,看看這個程序頭痛是否會最終消失。感謝所有的幫助。 – 2012-03-09 22:36:24
你要使用ifstream
來獲取值(ref 1)。
像下面這樣的東西應該工作。這裏我使用std :: string類型的字,但是可以用其他類型替換它來讀取它們(即:int,double等)。
std::ifstream f("somefile.txt");
std::string word;
std::string line;
if(f >> word){
if(<the comparison>){
line = f.getline();
}
}
首先,由於性能原因這是一個壞主意,在一次讀取1個字節。
我建議這種替代:
你會過得更好閱讀整行的,然後用字符數組。
char variable[1000];
從文件讀入你的行變成變量。
if (variable[1]=='c') { printf("Byte 2 (remember 0 offset) is compared for the letter c";}
得到一個兩位數#
number=((variable[3]-48)*10)+(variable[4]-48);
您必須減去48,因爲在ASCII數字0是48
如果你不透露你的程序,preferrably齊全,您正在使用的示例數據,只有具有水晶球的嚮導可以幫助您。 – Kaz 2012-03-09 05:09:10