Считывание из файла С++

199
09 июля 2018, 21:40

После считывания из файла, у меня считывается строка с символом перехода на новую строку, в итоге при попытке узнать длину строки выводит длину на 1 символ больше чем нужно. Как сделать так что бы символ перехода на новую строку не считывался?

int main() {
int i = 0;
while(fgets(str[i], 100, ptr) != NULL) {
    arr[i] = strlen(str[i])-1;
    cout << arr[i]<< endl;
    i++;
}
_getch();

}

Answer 1

Он все равно обязан быть считан :) - иначе вы следующим чтением получите пустую строку, нет? :)

Словом, есть стандартная библиотека, и стандарт работы функций. И в рамках этого стандарта приходится работать. Если использовать FILE в С++ - то я бы на вашем месте просто делал что-то типа

int len = strlen(str[i]);
if (str[len-1]=='\n') str[--len] = 0; // Проверка нужна - строка может быть слишком длинной
arr[i] = len;
READ ALSO
С какой точки считается margin-left?

С какой точки считается margin-left?

С какого угла? Или с середины?

168
Не могу изменить отображение элемента select?

Не могу изменить отображение элемента select?

Есть select элемент с начальным заголовком Gender нажимая на который можно выбрать male или female

198
Bootstrap 4. Не работает стили с index.css

Bootstrap 4. Не работает стили с index.css

Стили с моего indexcss работают некорректно

224