Есть ли лучший способ чтения в файлах символов, чем этот фрагмент кода? - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь сделать этот фрагмент кода лучше. То, что в основном делает этот код, принимает имя файла, которое затем читает файл. Обратите внимание, что в файле есть комментарий сверху или строка строки, которая заканчивается на \n, но этот код, как мне кажется, пропускает и начинает брать символ с 512, но я не уверен.

void RunList(char *filename)
{
    List <int> list;
    ListItr <int> listItr = list.zeroth();
    ifstream inf(filename);
    char command, s[512];
    int value;
    inf.getline(s,512);
    while (inf >> command >> value)
    {
        if (command == 'i')
            list.insert(value, listItr);
        else
            list.remove(value);
    }
}

Вот что у меня есть до сих пор, когда я узнал о .ignore и о том, что я мог понять, чтобы сделать его лучше.

Я не до конца понимаю линию char command, s[512] и как она играет роль в в то время как l oop.

void RunList(char *filename)
{
    List<int> myList;
    ListItr<int> myItr = myList.zeroth();
    ifstream inf(filename);
    file.ignore(256, '\n');
    char command , s[1];
    int value;
    inf.getline(s,1);

    while (inf >> command >> value)
    {
        if (command == 'i')
            list.insert(value, MyItr);
        else
            list.remove(value);
    }

Редактировать: вот фрагмент файла, который читается. Файл имеет 500000 ввод char, за которым следует int ex: i13. Например, первая строка является строкой, а затем за ней следует тонна этих символов.

Имеет серию из 500 000 вставок в порядке от 1 до 500000

i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 i15 i16 i17 i18 i19 i20 i21 ...
...