Считать номер из текстового файла без пробелов - PullRequest
4 голосов
/ 03 сентября 2011

Я пытаюсь прочитать 12-значное число из текстового файла в массив. Я смог сделать это успешно, если я ставлю пробел между каждой цифрой. например:

1 1 1 1 1 1 1 1 1 1 1 1 

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

111111111111

Я уверен, что ответ прост, но я нигде не смог найти точного решения моей проблемы. Ниже мой цикл while, который я использую для выделения массива.

void int_class::allocate_array(std::ifstream& in, const char* file)
{
    //open file
    in.open(file);

    //read file in to array
    int i = 0;
    while( !in.eof())
    {
        in >> myarray[i];
        i++;
    }

    in.close();
}

1 Ответ

3 голосов
/ 03 сентября 2011

Чтобы прочитать массив символов, предполагая, что в нем нет пробелов или других разделителей, вы можете прочитать все его сразу из входного потока:

in >> myarray;

Чтобы создать массив целых чисел, вы можетепрочитайте входной символ char по символу и заполните массив на месте:

char c;
int i = 0;
while( !in.eof())
{
   in >> c;
   myarray[ i++ ] = c - '0';
}

В этом случае в любом месте может быть любое количество пробелов, они будут игнорироваться.

...