Fstream только чтение целых чисел

Мой код отлично работает, когда файл, из которого я читаю, содержит только целые числа, но когда у меня есть числа с плавающей запятой, он, похоже, не работает, например, если у меня в файле 1.5, он будет читать только как 1, и он не будет читать ни один из числа после него. Кто-нибудь знает, что вызывает это? Динамический массив, в котором все сохраняется, является плавающим, поэтому я не уверен, что делать в этот момент.

#include <iostream>
#include <fstream>
#include <string>


float *allocateArray(std::string fileName, int &arraySize, int &counter)
{
int a = 0;
std::ifstream myReadFile;

myReadFile.open(fileName);
float *arr = new float[arraySize]{0.0};

while (myReadFile >> a)
{
    counter++;
    if (counter == arraySize)
    {
        arr[arraySize -1] = a;

    }

    else
    {
        float *tempArray = new float[arraySize +1]{0.0};
        for(int i = 0; i < arraySize; i++)
        {
            tempArray[i] = arr[i];
        }
        delete[] arr;
        arraySize++;
        arr = new float[arraySize];
        for(int x = 0; x < arraySize; x++)
        {
            arr[x] = tempArray[x]; 
        }
        arr[arraySize-1] = a;
    }

}
myReadFile.close();

return arr;
}

void output(float *arr, int arraySize,int counter)
{
float sum = 0.0;

for(int x = 0; x < arraySize; x++)
{
    sum += arr[x];
}
float average = sum/counter;
std::cout << "Output:  ";

for(int i = 0; i < arraySize; i++)
{
    if (arr[i] > average)
    {
        std::cout << arr[i] << "  ";
    }
}
}
int main()
{

int arraySize = 1;
int counter = 0;



float *arr = allocateArray("input.in", arraySize, counter);

std::cout << "Input:  ";
for(int x = 0; x < arraySize; x++)
{
    std::cout << arr[x] << "  ";
}
output(arr, arraySize, counter);




getchar();
return 0;
}

Ваша операция чтения - while (myReadFile >> a). Спросите себя, что это за тип a?

NathanOliver 16.11.2018 22:14

Также спросите себя, почему вы не используете std :: vector.

user2100815 16.11.2018 22:15

@NathanOliver, о, я знал, что кое-что я забыл изменить, я сначала написал это только с целыми числами, спасибо :)

filipanton1 16.11.2018 22:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
28
0

Другие вопросы по теме