读取列中文件的数字,一列整数,其他带小数的列号

时间:2010-04-20 16:55:05

标签: c++ numbers

int price=' ';   // attempt to grab a decimal number - but not the correct way
int itemnum=' '; // attempt to grab a whole number - but not the right way

while((price== (price*1.00)) && (itemnum == (itemnum*1)))

有什么方法可以在2个差异列中获取数字,其中一列是整数,另一列是带小数位的数字?

2 个答案:

答案 0 :(得分:2)

最好的方法是分别获得每个。如果它来自文件,那么你可以这样做:

int itemnum;
double price;

inputFile >> itemNum >> price; //If the columns are ItemNumber then Price

inputFile >> price >> itemnum; //If the columns are the other way around

>>运算符在C ++中很好用,因为它会尝试将输入转换为您正在使用的任何类型。

编辑:以下是文件的一个小例子:

#include <fstream>
#include <iostream>

int main()
{
    int input1;
    double input2;

    //Open file
    std::ifstream inFile;
    inFile.open("myFile.txt"); //or whatever the file name is

    while(!inFile.eof())
    {
        //Get input
        inFile >> input1 >> input2;

        //Print input
        std::cout << input1 << " " << input2 << " ";
    }

    //Close file
    inFile.close();

    return 0;
}

此文件可能包含以下数据:120 12.956 121 13.001 1402 12345.8

,输出为:120 12.956 121 13.001 1402 12345.8

如果数字也在列中,它将起作用。

答案 1 :(得分:0)

您需要将价格存储在浮动或双倍(或长双)中。

由于您使用的是C ++,因此您应该使用“>>”运算符来读取值。