Я могу заставить getline() работать с cin (getline(cin,line)), но когда я открываю поток, он не читает строку из файла. Файл содержит список элементов периодической таблицы.
например:
H
He
O
и т.д....
РЕДАКТИРОВАТЬ:
Однако, когда я пытаюсь вычислить только что прочитанную строку, она не помещается в символ var в строке:
cout ‹‹ "symbol: " ‹‹ symbol ‹‹ endl;
Это ничего мне не дает, но должно вернуть первый элемент (H).
#include <fstream>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void print(vector <string> x)
{
cout << "list of elements:" << endl;
for (int i = 0; i < x.size(); ++i)
{
cout << x[i] << endl;
}
}
int main(int argc, char** argv)
{
string symbol;
vector <string> elementlist;
ifstream readin;
readin.open("Elements.txt");
getline(readin,symbol);
cout << "symbol: " << symbol << endl;
while (!readin.good())
{
elementlist.push_back(symbol);
getline(readin,symbol);
}
print (elementlist);
return 0;
}
!readin.good()
, которое в конечном итоге становитсяfalse
, поэтому вы никогда ничего не читаете. Инвертируйте это. - person obataku   schedule 30.08.2012