从ct文件中查找和验证.txt文件中的特定用户ID

时间:2016-11-30 19:43:59

标签: c++

我不确定如何阅读有关阅读文本文件的特定信息点。我想做的是。

  1. 从输入中获取用户ID(cin>> userID)
  2. 程序检查ID是否存在于数据库中(读取.txt文件)
  3. 如果存在ID,请转到下一部分
  4. 否则,cout错误消息

    //Example text from the file:

    12345678 23456789 34567890 45678901 etc. etc. etc.

  5. 在这里,如果用户输入“12345678”,我想了解如何允许c ++仅在.txt文件中专门扫描12345678。因此,生成“ Identification Verified。”消息。或者有人可以慷慨地指导我找到合适的链接吗?

3 个答案:

答案 0 :(得分:0)

您将要使用std :: string :: find。

示例:

if (fullString.find(partOfString) != std::string::npos) {
    std::cout << "found!" << endl;
}

因此,在您的示例中,您所处理的文本文档的行将是fullString,输入的用户ID将是partOfString。您也可以直接与

等进行比较
if (userString == lineFromFile)
{
    //do something
}

答案 1 :(得分:0)

&#34;具体扫描.txt文件中的123456&#34; - 你不能。你拥有的是一个文本文件,而不是一个数据库。如果您的文件非常大,我会争辩说解决方案是使用数据库(例如sqlite)并让它为您生成索引。然后,您可以在数据库中查询与xyz匹配的任何userIds。

答案 2 :(得分:0)

假设你知道如何open the file using fstream以及诸如此类的东西,你可以做一些类似于while循环的事情。

ifstream yourFile;
int userID, wantedID;
bool found = false;

//open file
while(yourFile >> userID && found == false){ //this says while there is numbers that can be put into UIN, do this. This way it won't keep trying after it has run out of numbers, and will also stop if/when it is found, whichever comes first.
    if(UserID == wantedID){
        found = true;
    }
 }

所以这将允许做的是在整个文件中搜索ID,并在发现时停止搜索。然后,您可以使用它来执行您想要的操作,但是在使用userID时,您很可能仍然希望检查找到的布尔值,以防它找不到并且用完了数字。