2017-08-01 75 views
-1

我想本質上粘貼一塊文本作爲輸入,並讓它正常工作。我實際上已經使用一個外部文本文件得到它,但沒有得到它使用cin工作。以下是工作示例。正如你所看到的,我希望每條新線都成爲一個功能輸入的新元素,這是很多問題的起因。試圖輸入多行多變量cin輸入

int uaid; 
string name; 
float gpa; 
int i = 0; 
ifstream infile("student.txt"); 
while (infile >> uaid >> name >> gpa) { 
    students[i].Set(uaid, name, gpa); 
    i+=1; 
} 
+0

「沒能得到它的工作」 是不是一個有用的問題描述。 「你好,查克的汽車修理?我不能讓我的車上班,你能幫我嗎?」 –

+0

有沒有什麼能讓這樣的東西起作用?而(函數getline(CIN,uaid >>名稱>> GPA){ \t \t學生[I] .SET(uaid,名稱,GPA); \t \t我+ = 1; \t} – Sam

+0

使用istream_iterator連續CIN –

回答

0

您可以使用Istream_Iterator stl.Continously添加到字符串矢量

#include<iostream> 
#include<vector> 
#include<algorithm> 
#include<iterator> 
using namespace std; 
int main() 
{ 

vector<string> v; 
istream_iterator<string> start_cin(cin); 
istream_iterator<string> end_of_cin; 
copy(start_cin,end_of_cin,back_inserter(v)); 
cout<<"Pressed ctrl D"<<endl; 
cout<<"Below is the continous string"<<endl; 
copy(v.begin(),v.end(),ostream_iterator<string>(cout," ")); 

} 

使用CTRL + d(適用於Mac終止)

string 1 
string 2 value 
1 2 3 4 \n \d 
everything is there 
Pressed ctrl D 
Below is the continous string 
string 1 string 2 value 1 2 3 4 \n \d everything is there Program ended with exit code: 0 
+0

現在這將工作與多個數據類型每行? – Sam

+0

是的,它會(所有將被視爲字符串)..你可以在示例輸出 –

+0

副本(v.begin(),v.end(),ostream_iterator ( cout,「」));將其改爲複製(v.begin(),v.end(),ostream_iterator (cout,「\ n」)); \\在每一行中輸出 –