我有以下格式。每行有两个整数,文件以“ *”结尾。如何从文件中读取两个数字。谢谢。

4 5
7 8
78 89
 *  //end of file


编辑

我知道读过两个数字,但不知道如何处理“ *”。如果我将每个数字存储为整数类型,然后按cin读取它们。但是最后一行是字符串类型。因此,问题在于我将其读取为整数,但是它是字符串,因此我不知道如何判断它是否为*。

我的代码如下(显然是不正确的):

string strLine,strChar;
istringstream istr;
int a,b;
while(getline(fin,strChar))
{
    istr.str(strLine);
    istr>> ws;
    istr>>strChar;


    if (strChar=="*")
    {
        break;
    }
    istr>>a>>b;
}

最佳答案

您可以简单地从ifstream对象中提取数字,直到失败为止。

std::ifstream fin("file.txt");

int num1, num2;
while (fin >> num1 >> num2)
{
    // do whatever with num1 and num2
}

09-05 23:03