Форум программистов, компьютерный форум CyberForum.ru

чтение из файла, в котором на перенос строки отводится один символ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ структуры подскажите где ошибки http://www.cyberforum.ru/cpp-beginners/thread33257.html
Ребята посмотрите код Пока сделал (думал что сделал) первых 4 пункта но начинает выдавать ошибки посмотрите что за ошибки Предметная область - бухгалтерия предприятия. Решаемые задачи - учет труда и зарплаты работников; табель учета рабочего времени (складывается по подразделам и включает ПИБ работника, должность, количество отработанных часов и количество неробочих дней, за месяц)....
C++ компилятор пропускает строчки с инициализацией здравствуйте! Копмилятор пропускает строчки с инициализацией переменных. При попытке поставить маркер, переносит этот маркер на строчку ниже. Переменные при этом инициализируются какими-то левыми значениями. В чем может быть проблема? http://www.cyberforum.ru/cpp-beginners/thread33255.html
C++ Телефонная книга. нужна помощь в настроике настроить поиск.
#include <string.h> #include <stdio.h> #include <windows.h> void funkcia1() { int i,j=1; for(i=0;i<90;i++) printf("%c",j);
C++ работа с указателями
небольшая проблемка, никак не могу разобраться с указателями. Я так понял что создавая массив лучше если сразу сдалешь на него указатель и будешь работать с ним, нежели с самим массивом, тип так экономичнее для ресурсов компа, я ведь правильно понял? #include <cstdlib> #include <iostream> #include <stdio.h> short int const n = 3; using namespace std;
C++ поиск маршрута. Задача на С#. http://www.cyberforum.ru/cpp-beginners/thread33222.html
Задача следующая: Некая географическая карта местности задана квадратной сеткой определенного масштаба. В узлах сетки известна высота над уровнем моря. Между соседними узлами высота меняется плавно. Имеется караван, перемещающийся только по линиям сетки, перемещение по диагоналям запрещается. Путь между двумя соседними точками с углом наклона больше 45 градусов считается непроходимым....
C++ Програма с .тхт файлом вот код #include <windows.h> #include <stdio.h> #include <conio.h> FILE *f; typedef struct tagINFO { подробнее

Показать сообщение отдельно
artyom.stv
Сообщений: n/a

чтение из файла, в котором на перенос строки отводится один символ - C++

09.05.2009, 03:41. Просмотров 1545. Ответов 0
Метки (Все метки)

Здравствуйте.

При обработке файлов результатов неких измерений наткнулся на такую проблему:
На перенос строки отводится один байт, как в *nix-системах, а не два байта, - как в маздае. пишу я как раз под маздаем.
Использую ifstream для чтения из файла. Есть причины, по которым использовать С-шный доступ к файлам мне не выгодно.
Вызов tellg для потока выдаёт значение (положение в файле), которое было бы, если бы в файле для переноса использовалось бы два байта.

Т.е. когда на 51 строке реальная позиция в файле, например 900, tellg выдаёт 950. При переходе
Код
fin.seekg(fin.tellg(), ios::beg)
позиция чтения не должна меняться, а она меняется. То же самое и при вызове
Код
fin.seekg(shft, ios::cur)
при shft неравном нулю, - позиция смещается не на shft, а на shft+50, например.

Подскажите, пожалуйста, если кто-нибудь знает, как сказать ifstream-у, что в переносе строки нужно учитывать один байт, как оно и есть на самом деле для конкретного файла.

Добавлено через 13 часов 55 минут 25 секунд
Спасибо всем, кто смотрел и пытался решить проблему.

Как вариант это решается с помощью istreambuf_iterator:
Код
ifstream fin( fileName );
ifstreambuf_iterator it( fin ), end;
......
find( it, end, '\n' );
fin.seekg( 1, ios::cur );
Наверняка есть и более вразумительные способы, но этого вполне хватет для большинства случаев.
Если таким образом проходить ВСЕ символы переноса, не используя getline, то tellg будет выдавать правильное значение.

Тему можно закрыть.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru