我正在创建一个添加数据的应用程序,但我正在尝试添加一个数据检查,检查添加的特定数据是否已经存在,然后它不会添加到文件中。 这是我所拥有的,但到目前为止它没有工作,没有错误,但它只是添加已存在的数据:
void checklog(const std::string& input){
ifstream iFile("C:\\Users\\Seann\\Documents\\storedData\\data.txt");
string line;
while(getline(iFile, line)){
if(input!=line){
iFile.close();
updateLog(input);}
}
}
提前感谢任何认真的答案。
答案 0 :(得分:1)
如果要检查单词的每一行,您应该创建如下内容:
std::vector<std::string> fileInput;
int i = 0;
while (std::getline(iFile, fileInput[i])
i++;
i = 0;
bool found_string = false;
while (i < input.size())
{
if (string_that_you_wanted_to_compare == fileInput[i])
found_string = true;
}
if (found_string)
{ do whatever }
或类似的东西。
答案 1 :(得分:0)
您的if ... else
尝试仍在其读取的第一行做出决定,并且在您找到该单词之前不会循环。试试这个:
void checklog(const std::string& input){
ifstream iFile("data.txt");
string line;
bool found = false;
while (!found && getline(iFile, line)){
if (input == line)
found = true;
}
iFile.close();
if (found)
updateLog(input);
}