0

我是 C++ 新手,并试图了解基础知识。我正在尝试读取文件的输入并打印出文件中的所有内容,最重要的是,将项目的 id 与我键入的值匹配并删除文件中与 id 匹配的行。

4

2 回答 2

0

如果您的文件格式是固定的 ( int: string:int )

您可以找到/匹配“id”,如下所示:

cout << "Input the id that you wish to find" << endl;
cin >> input;

char ch; // for colon (:)
while(readFile >> id >> ch >> itemName >> ch >> quantity )
{
   if (input == id) {
     //cout << "valid Input";
    }

}

readFile .close();
于 2013-10-14T06:04:14.243 回答
0

您的代码有两个问题。

首先是输入运算符>>在空格上分隔,而不是在任意字符上分隔,因此您对输入文件的解析是错误的。

您可以使用 egstd::getline将各个字段作为字符串获取,然后将它们转换为正确的类型(通过 astd::istringstream或使用 eg std::stoi)。


第二个问题是您读入了所有数据,但只保存了您读入的最后一行。您需要将数据存储在放入向量中的结构中,然后搜索该向量。

于 2013-10-14T05:39:03.193 回答