2015-02-11 77 views
-1

將文本文件讀入C++程序我正在處理,並將每個字符串存儲在雙節點列表的節點中。問題是,我不知道如何將一條線分成較小的字符串,將它們分隔開。將字符串從文本輸入分割成更小的字符串

例如,一個輸入

「鴨子唐納德940-666-5678」

,我試圖把它分成lastname串,串firstnamephnum在空白處的字符串。結果本質上是:

lastname==Duck 
firstname==Donald 
phnum==940-666-5678 

我該怎麼做?

+3

你嘗試過這麼遠嗎?它是如何(或沒有)它的工作?你知道輸入運算符'>>'將輸入分隔爲空白嗎? – 2015-02-11 15:17:02

+0

不,其實,我不知道。已經使用C++三年了,而且我仍然在學習東西。給我一點時間,我測試了一下。 – 2015-02-11 15:26:21

回答

1

雖然我不知道你怎麼提取這些數據,我相信你應該能夠使用>>運營商。

例子:

string lastname; 
string firstname; 
string phnum; 
ifstream myFile; 
myFile.open("example.txt"); 

myFile >> lastname >> firstname >> phnum; 
0

我不太清楚你是如何從你的文件中讀取的,但這段代碼可能對你有幫助。

#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main() 
{ 
    string line; 
    ifstream myfile ("example.txt"); 
    if (myfile.is_open()) 
    { 
    while (getline (myfile,line)) 
    { 
     istringstream iss(s); 
     do 
     { 
      string sub; 
      iss >> sub; 
      cout << "Substring: " << sub << endl; 
     } while (iss); 
    } 

    myfile.close(); 
    } 

    else cout << "Unable to open file"; 

    return 0; 
} 

確保前問搜索#1 /谷歌,因爲你可以找到你的答案真的輕鬆很多次(見我的資源)

資源:http://www.cplusplus.com/doc/tutorial/files/Split a string in C++?