2012-10-09 2 views
0

Хорошо, я новичок в C++, но я делаю много практикующих.чтение записей из текстового файла

Вот моя проблема, может кто-то взглянуть на мой исходный код и направить меня в правильном направлении здесь, пожалуйста.

Это то, что я пытаюсь сделать.

  1. Программа должна иметь возможность прочитать текстовый файл с записями в нем. (DID ЧТО)
  2. Я также хочу, чтобы искать записи, используя строку в текстовом файле (Не сделано this)
  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; 
} 

Вот текстовый файл exmaple с записями.

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

Смежные вопросы