从文本文件C ++中获取数值

时间:2014-07-15 22:51:12

标签: c++ text-files

我是c +的新手,需要帮助从文本文件中获取数字并将它们相乘。我能够显示文本,但我不知道如何从文本文件中检索数字,以便我将它们相乘。 (input.txt文件只是一个随机名称与数字相关联的文件。我想从文本中获取数字,以便我可以将它们相乘。)谢谢。

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
    string line;
    ifstream myfile ("input.txt");
    if (myfile.is_open())
    {
        while ( getline (myfile,line) )
        {
            cout << line << '\n';
        }
        myfile.close();
    }
    else
        cout << "Unable to open file";
    system("pause");
    return 0;
} 

2 个答案:

答案 0 :(得分:1)

让我们说你的文件看起来像这样:

Casey 5.3
Ricardo 6.8
...

然后在你getline之后你就可以做到这一点:

string name;
float grade;    
stringstream ss;
ss.str(line);
ss >> name >> grade;

和成绩将包含您寻求的数字。

答案 1 :(得分:0)

Steven  10  5
Moe      2  8
Ali     45  3
Joe     34  1

这是您的文本文件的样子 您可以直接使用operator >>并全部阅读。

std::ifstream file("input.txt");
std::string name;

// This will loop until we can no longer 
// extract names from the file.
while (file >> name) {
    int a;
    int b;

    file >> a >> b;
    std::cout << name << ' ' << a * b << '\n';
}