2015-04-11 6 views
2

У меня проблемы, я выполняю задание по статистическому тестированию гипотез. Я могу делать все вычисления на бумаге, но у меня проблемы с чтением из файла в массив.Заполнение массивов из текстового файла

Вот цифры, которые мне нужны, они уже содержатся в текстовом файле input1.txt, как показано ниже.

0,5923 0,58 0,6008 0,6117 0,6295 0,6088 0,6148 0,6369 0,6372 0,6241 0,6034 0,6108 0,591 0,601

109,31 110,13 108,9 108,96 108,86 109,17 109,29 108,62 109,06 108,61 109,83 110,48 111,53 111,02

Я хочу, чтобы определить размер массива должен быть 14 из первой строки, а затем два отдельных массива для первых 14 цифр и второй 14. Если это имеет смысл, мне нужно, чтобы он был заполнен из текстового файла и не был введен пользователем.

На данный момент я могу получить его только для чтения во всех данных до конца файла. Мне нужно, чтобы я читал каждую до конца строки, я думаю?

Любая помощь будет высоко оценена.

Вот что у меня есть.

#include "std_lib_facilities.h" 
    #include <cctype> 
    #include <iostream> 
    #include <fstream> 

    using namespace std; 

    int main() 
    { 
int array_size; //I want this to be 14, read from the first line of txt file 
double * array1; 
double * array2; 
ifstream fin("input1.txt"); //opening an input stream for file 

if (fin.is_open()) 
{ 
    cout << "File opened" << endl; 
    cin >> array_size; 
    cout << "N = " << array_size << endl; 
    array1 = new double[array_size]; //allocate memory for arrays 
    array2 = new double[array_size]; 
    for (int i = 0; i < array_size; ++i) //fill array1 
     cin >> array1[i]; 
    for (int i = 0; i < array_size; ++i) //fill array2 
     cin >> array2[i]; 

    cout << "Arrays are below" << endl << endl; 
     cout << "Additive "; 
    for (int i = 0; i < array_size; ++i) 
     cout << array1[i] << ' '; 
    cout << endl; 
     cout << "Yield "; 
    for (int i = 0; i < array_size; ++i) 
     cout << array2[i] << ' '; 

} 
else 
{ 
    cout << "File could not be opened." << endl; 
} 

fin.close(); 


return 0; 
    } 

ответ

1

Вы хотите прочитать из файла, но вы используете cin, который читается со стандартного ввода. Просто измените cin на имя вашего открытого потока файлов - плавник;)

+0

Это исправлено. Cheers! – Garysully1986

+0

@ Garysully1986 Возможно, вы захотите [принять ответ] (https://meta.stackexchange.com/a/5235/225842). (Это также даст вам 2 точки репутации :) – Antonio

Смежные вопросы