2015-02-11 81 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++?