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

Посимвольное считывание из файла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.97
Физик
2 / 2 / 1
Регистрация: 22.05.2012
Сообщений: 41
23.05.2012, 23:45     Посимвольное считывание из файла #1
Нужно считать данные из файла посимвольно, при этом не все подряд, а, например из 1й строчки с 5 символа, из 7 с 8 и тд.
Кол-во строчек заранее известно. Просто символ или строку считывать умею, а вот дальше сложнее.
Ничего не нашла по этой проблеме в интернете, если у кого есть ссылочка, поделитесь пожалуйста, а лучше конечно кусочек кода на С++ или на С.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2012, 23:45     Посимвольное считывание из файла
Посмотрите здесь:

Считывание с файла C++
Считывание файла в массив и запись нового файла C++
C++ Посимвольное считывание из файла в массив int
Считывание файла C++
C++ посимвольное считывание
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
23.05.2012, 23:59     Посимвольное считывание из файла #2
самый банальный вариант - поставить файловый курсор на нужное место с помощью функций
fseek( C ) http://www.cplusplus.com/reference/c.../cstdio/fseek/
seekg( C++ ) http://www.cplusplus.com/reference/i...istream/seekg/
Физик
2 / 2 / 1
Регистрация: 22.05.2012
Сообщений: 41
24.05.2012, 00:28  [ТС]     Посимвольное считывание из файла #3
Попробовала, не работает(
Может где ошибка?
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int c;
    char a;
    long int i;
    FILE *stream;
    stream = fopen("tek2.txt", "r");
    if (stream == NULL)
        return (1);
 
    fseek (stream, 4 ,SEEK_SET);
        long int ftell(FILE *stream);
 
    for ( i=ftell(stream); i<20; i++)
 {
     fseek (stream, i ,SEEK_SET);
         a = getc(stream);
  while ( a != NULL)
        cout << a << endl;
 }
    fclose(stream);
    getch();
    return 0;
}
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
24.05.2012, 02:23     Посимвольное считывание из файла #4
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int c;
    char a;
    long int i;
    FILE *stream;
    stream = fopen("tek2.txt", "r");
    if (stream == NULL)
        return (1);
 
    fseek (stream, 4 ,SEEK_SET);
 
    for ( i=0; i<20; i++)
 {
        a = getc(stream);
        cout << a << endl;
 }
    fclose(stream);
    getch();
    return 0;
}
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
24.05.2012, 02:40     Посимвольное считывание из файла #5
А какие данные хранятся в файле?
Если данные одного типа ( то есть размера) то можно применять произвольный доступ c помощью fseek().
Если нет то возможно легче читать файл целиком на пример в std::vector<std::string>
Yandex
Объявления
24.05.2012, 02:40     Посимвольное считывание из файла
Ответ Создать тему
Опции темы

Текущее время: 04:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru