Как прочитать текстовый файл до определенной позиции в C? - PullRequest
0 голосов
/ 10 августа 2009

Я передаю строку в качестве аргумента моей программе и извлекаю ее позицию в текстовом файле. Можем ли мы прочитать текстовый файл только до этой определенной позиции в C ?? Если да, то скажите, пожалуйста, как.

Ответы [ 2 ]

3 голосов
/ 10 августа 2009

Просто используйте fread () до количества байтов, которое ставит вас на эту «позицию» в файле. Например, если вы знаете, что хотите прочитать до позиции в 1928 байт, просто прочитайте столько байтов с помощью fread.

1 голос
/ 10 августа 2009

Что вам нужно, так это функция strstr, написанная для файловых дескрипторов. Это общая реализация strstr. Вы можете довольно легко изменить его, чтобы использовать файловые буферы вместо другой строки, поэтому я не буду выполнять вашу работу за вас: P

char *
strstr(const char *haystack, const char *needle)
{
        char c, sc;
        size_t len;

        if ((c = *needle++) != '\0') {
                len = strlen(needle);
                do {
                        do {
                                if ((sc = *haystack++) == '\0')
                                        return (NULL);
                        } while (sc != c);
                } while (strncmp(haystack, needle, len) != 0);
                haystack--;
    }
        return ((char *)haystack);
}
...