2017-05-09 70 views
1

TEXTFILE內容讀取線文本文件和分裂,如果它有逗號

a,b,c,d, 
efgh 
ijk1 

我希望在數組來存儲,myArray的[];

myArray[0] = a; 
myArray[1] = b; 
myArray[2] = c; 
myArray[3] = d; 
myArray[4] = efgh; 
myArray[5] = ijkl; 

我做了什麼

string myArray[100]; 
int array_count = 0; 

ifstream file((path+dicfile).c_str()); 
std::string str; 

while (std::getline(file, str,',')) 
{ 
    myArray[array_count] = str; // store those value in array 
    cout << str << "\n"; 
    strings.push_back(str); 
    array_count++; 
} 

的我的輸出做了

myArray[0] = a; 
myArray[1] = b; 
myArray[2] = c; 
myArray[3] = d; 
myArray[4] = efghijkl; 
+0

帶這些參數的'getline'獲取您的行,直到下一個逗號或eof –

+1

如果輸入數據正確,那麼在最後兩個字符串之間缺少一個逗號。 –

+0

@GeorgeNewton是的,風格是這樣的,最後兩個字符串會結合在一起,因爲它之間沒有逗號,但文本文件內容最初沒有逗號在那裏... – BeginProgramLife

回答

1

以下代碼是一個除了每原代碼分裂:預計產量將在逗號分割的基礎然後按照逗號分割該行:

string myArray[100]; 
int array_count = 0; 

ifstream file((path+dicfile).c_str()); 
std::string line; 

while (std::getline(file, line)) 
{ 
    std::istringstream iss(line); 
    std::string str; 
    while (std::getline(iss, str, ',')) 
    { 
     myArray[array_count] = str; // store those value in array 
     cout << str << "\n"; 
     strings.push_back(str); 
     array_count++; 
    } 
} 
+0

第7行;應寫(while std :: getline(file,line,',')) – BeginProgramLife

+0

你是對的。 – stefaanv

相關問題