从文本文件中读取数据

问题描述:

我有一个问题需要从文本文件中读取详细信息。从文本文件中读取数据

在我的文本文件,我有这方面的信息:

Employee Name: XXXXXX 
Address: XXXXXXXXXX 
Phone Number: XXXXXX 

Employee Name: XXXXXXXX 
Address: XXXXXXXX 
Phone Number: XXXXXX 

如何,我可以得到一切有,以正确的格式,是输出编入控制台?

我的代码是:

ifstream inEmpFile; 
inEmpFile.open("emp.txt"); 
string file_contents; 

    while(inEmpFile >> file_contents) 
    { 
     cout << file_contents << ' '; 
    } 
    inEmpFile.close(); 
    inEmpFile.clear(); 

我得到的文本块,是的内容是正确的,但一切都连接在一起,如不正确的格式。我该怎么做?在此先感谢

+1

什么是正确的格式? – Beta 2014-10-07 02:58:37

+0

你应该看看逐行加载文件,然后执行你要查找的格式。 – DoubleYou 2014-10-07 02:59:40

+0

上述人员名称:XXXXX \ n地址:XXXXXX。像那样。 – NewbieCoder 2014-10-07 02:59:44

刚读每一行分别使用函数getline():

while (getline(inEmpFile,file_contents)) 
{ 
    cout << file_contents << ' '<<endl; 
} 

使用getline从文件中获取行到字符串。 使用cout打印字符串并按照新行字符进行操作。 在循环中为文件中的每个字符串执行此操作。

+0

你能给我举个例子吗?我还是新来的C++ – NewbieCoder 2014-10-07 03:09:15

+0

@Yeen:我可以建议看看'ifstream'提供的所有函数[here](http://www.cplusplus.com/reference/fstream/ifstream/?kw=ifstream)吗?另外,在网上寻找例子应该很多。 – DoubleYou 2014-10-07 03:11:54

使用>>忽略所有的空间。复制整个文件可以做到这样:

ifstream inEmpFile; 
inEmpFile.open("emp.txt"); 

std::cout << inEmpFile.rdbuf(); // no loop needed 

这工作,因为<<std::streambuf*一个特殊的过载是由rdbuf()返回的。

见(2)流缓冲std::ostream::operator<<()