将文本文件读入C ++

时间:2012-12-06 03:29:47

标签: c++ input io

  

我正在编写一个可以直接从文本中读取输入的程序   将文件存入C ++文件。但是,文件的内容进来   不同的格式,例如时间。输入文件如下所示:

Time(1) Price(1)
8:56:18 1250.00
9:00:25 1250.25
9:21:36 1250.50
9:23:32 1249.75

Time(2)
8:55:28
9:02:14
9:20:23
9:21:37
Price(2)
1680.50
1681.00
1680.50
1681.50
  

我读取文件的程序如下:

int main()
{
    string file;
    cout << "Enter a file name to read input: ";
    cin >> file;

    ifstream file_name(file.c_str());

    while(!file_name.eof())
    {
        double input;
        file_name >> input;
        cout << input << endl;
    }
}
  

但是当我执行程序时,我陷入无限循环中   所有我看到的都是0写在屏幕上。这是由于造成的   格式化时间?

1 个答案:

答案 0 :(得分:1)

file_name >> input的默认行为是类型安全的,因此file_name字节偏移指针永远不会增加Time(1)8:56:18等输入。您可以使用string input;代替double input;来检索值,然后您可以使用以下标准c库检查其类型。

#include <cstdlib>
.
.
.
atof()
atoi()
.

Here是文档。