我可以使用getline()來使用cin(getline(cin,line)),但是當我打開一個流時,它不會從文件中讀取行。該文件包含元素週期表中的元素列表。C++;使用字符串getline()不能與文件輸入一起工作
例如:
^ h
他
Ø
等等
編輯:
然而,當我嘗試cout的新線讀取,它不會把它進入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;
}
你能告訴你的代碼? – oldrinb
我在完成我的帖子之前意外打開了輸入。我道歉。 – Cerealkiller050
@ user1634904你的循環條件是'!readin.good()',它最終是'false',所以你永遠不會讀任何東西。反轉它。 – oldrinb