我知道这个问题已被多次询问,但大多数人只是检索了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);
这是我的代码的样子,但程序无法读取下一行。只接受第一行用户名并输出最后一行用户名
答案 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;
}