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个差异列中获取数字,其中一列是整数,另一列是带小数位的数字?
答案 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 ++,因此您应该使用“>>
”运算符来读取值。