читать числа из файлов в столбцах, целые числа одного столбца, другие номера столбцов с десятичными знаками - PullRequest
0 голосов
/ 20 апреля 2010
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 ]

2 голосов
/ 20 апреля 2010

Лучшим способом было бы получить каждый отдельно. Если это из файла, то вы можете сделать это:

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

Это будет работать, если числа тоже в столбцах.

0 голосов
/ 20 апреля 2010

Вам нужно будет хранить цену в плавающей или двойной (или длинной двойной).

Поскольку вы используете C ++, вам, вероятно, следует использовать операторы '>>' для чтения значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...