字符串分隔符

时间:2014-09-08 09:29:40

标签: c++ delimiter

我知道这个问题已被多次询问,但大多数人只是检索了1个数据。我有一个文本文件,以这种方式存储数据,使用冒号分隔,然后我需要检索3和1数据,并根据问题用2个分隔符分隔。 例如: adrian:ee25f924b7df4d4fb93b3da96ee342b1:1

格式如下

username:passwordsalthash:userclearance

是否可以提取'passwordsalthash'?像这样的东西?

do{
        stringstream retrieve(retSalt);
        cout << "Enter username that you want salt to be retrieved"<< endl;
        cin >> rUsername;

       getline (retrieve,gUsername,':');
       getline (retrieve,gSalt,':');
       getline (retrieve,gUserClearance,':');

        inputFile.close();
        if (rUsername != gUsername){
        cout << "User not available!" << endl;
        }        
        } while (rUsername != gUsername);

这是我的代码的样子,但程序无法读取下一行。只接受第一行用户名并输出最后一行用户名

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上,看看the manuals会告诉你详情。

通常的免责声明,此代码没有必要的错误检查。

#include <iostream>
#include <fstream>

int main()
{
    std::ifstream ifs( "shadow.txt" );
    std::string user, pass, clearance;
    std::getline( ifs, user, ':' );
    std::getline( ifs, pass, ':' );
    std::getline( ifs, clearance );
    ifs.close();
    std::cout << "User: '" << user << "'\n"
                 "Pass: '" << pass << "'\n"
                 "Clearance: '" << clearance << "'\n";
    return 0;
}