2012-10-09 202 views
0

好的,即時通訊新的C++,但我做了很多練習。從文本文件中讀取記錄

這是我的問題,有人可以看看我的源代碼,請引導我在這裏正確的方向。

這就是我想要做的。

  1. 程序應該能在它讀取的文本文件中的記錄 。(這樣做)
  2. 我也希望搜索文本文件 使用字符串的記錄(有沒有做此)
  3. 此外,使用小數點 數字或文本文件中的雙數對記錄進行排序從最高到最低。我想到了使用冒泡排序 函數。

這裏是我的代碼

#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

//double gpa; 
//string 

int main() 
{ 
    string line; 
    ifstream myfile ("testfile.txt"); 
    if (myfile.is_open()) 
{ 
    while (myfile.good()) 
{ 
     getline (myfile,line); 
     cout << line << endl; 

} 
    myfile.close(); 
} 

else cout << "Unable to open file"; 

char c; 
cout<<"\n enter a character and enter to exit: "; 
cin>>c; 
return 0; 
} 

這裏是一個記錄的〔實施例的文本文件。

aRecord 90 90 90 90 22.5 
bRecord 96 90 90 90 23.9 
cRecord 87 90 100 100 19.9 
dRecord 100 100 100 100 25.5 
eRecord 67 34 78 32 45 13.5 
fRecord 54 45 65 75 34 9.84 
gRecord 110 75 43 65 18.56 
+0

@Radu無關緊要,如果它是作業:[家庭作業標籤現在正式棄用](http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially -deprecated) – slugster

回答

1

注意,那getline(myfile, line)可能會失敗,因此它是不正確的使用line值在這種情況下:

while (myfile.good()) 
{ 
    getline(myfile, line); 
    cout << line << endl; 
} 

應該是:

while (getline(myfile, line)) 
{ 
    cout << line << endl; 
} 

您的問題2 3:在尋求幫助之前,你應該自己嘗試一下。如果不是一個解決方案,或者甚至沒有嘗試,那麼你至少應該有一些想法。每次你想從中檢索一些數據時,你是否想瀏覽一下你的文本文件?立即閱讀並將其存儲在內存中(也許std::vector<Record>然後搜索記錄向量中的記錄)是不是更好?你是否想逐行瀏覽你的文件,並在每一行中搜索一些特定的字符串?...只要仔細想一想,你就會找到你的問題的答案。

+0

感謝您的意見。我不是C++中的經文,我真的對這種編程語言很陌生,即使他們說的是基本的。我一直在給它很多的想法,並嘗試不同的變化。 – user1733201