Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
1

Ftell отрицательные значения

07.12.2015, 21:34. Показов 879. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет форумчане!
Пытаюсь прочитать данные из текстового файла и проигнорить комметы (строки с #). Загадка вот в чем, изначально в файле переход на новую строку только символом новой строки делается, без возврата каретки. И в этом случае после считывания из файла ftell возвращает отрицательные значения, т.е. перемещается с -11 до 9 вместо 0 до 22. Пересохранение с символом возврата каретки решает проблему. В остальном начало файлов абсолютно идентично, проверил хекс редактором.

Ладно бы fseek(in, -1, SEEK_CUR); работало в обоих случаях, а то только во втором пашет. Просто надо как-то проверить первый символ на решетку и откатиться обратно, если строка не коммент.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//check format
    //ВОТ ТУТ ПОЗИЦИЯ 0
    char format[3];
    fgets(format, 3, in);
        //ВОТ ТУТ ПОЗИЦИЯ -9
    if (strcmp(format, "P2") == 0) printf("format accepted");
 
    char newline = getc(in); //read new line
    printf("\n");
 
    //ignore comments
    char ch;
    int pos;
    while (1)
    {
        pos = ftell(in);
        printf("pos: %d\n", pos);
        ch = getc(in);
        if (ch == '#')
        {
            while (ch != 0x0a)
            {
                ch = getc(in);
 
                printf("pos: %d, %c\n", ftell(in), ch);
            }   
        }
        else break;
    }
 
    fseek(in, -1, SEEK_CUR);
 
    printf("pos: %d\n", pos);
    int width;
    int height;
    int shadesOfGrey;
 
    fscanf(in, "%d", &width);
    fscanf(in, "%d", &height);
    fscanf(in, "%d", &shadesOfGrey);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2015, 21:34
Ответы с готовыми решениями:

Шуточки ftell
Сегодня потерял целый день, но, кажись, разобрался. Решил поделиться с товарищами. История такая....

Вывести на экран отрицательные значения функции и соответствующие им значения аргумента на отрезке
Для заданной функции y=ln(m\2,3)-tg(корень(m-1,2) вывести на экран отрицательные значения функции...

В массиве вещественных чисел отрицательные значения заменить на абсолютные значения
В массиве вещественных чисел отрицательные значения заменить на абсолютные значения.

SQL Server 2008: значения ID в таблице принимают отрицательные значения
у меня Visual Studio2008 и SQL Server 2008 В общем ситуация такая, сделана база, там создана...

0
07.12.2015, 21:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2015, 21:34
Помогаю со студенческими работами здесь

Отрицательные значения в файле заменить на их округленные значения
1)Создать файл, состоящий из нескольких вещественных чисел. Отрицательные значения в файле...

Запрет на отрицательные значения!
Ребят, всем привет!!. Вот такой вопрос возник - как в БД полю с типом данных int(таблица создается...

отрицательные значения функции
составить программу распечатки отрицательных значений функций m=ln(15.6-r)+56.3 на отрезке (s,23) c...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru