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

Считывание по 4 символа из файла - C++

Восстановить пароль Регистрация
 
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
06.11.2012, 21:02     Считывание по 4 символа из файла #1
Есть файл с примерны содержанием:
11000001111110000000000111111010101110
В файле находятся только 0 и 1. Нужно считать их по 4 символа в массив. Что то не приходит в голову как сделать? Через fseek? Если через него то как?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2012, 21:02     Считывание по 4 символа из файла
Посмотрите здесь:

Считывание из файла C++
C++ Считывание из файла
C++ Считывание с файла
C++ Считывание символа с потока для дальнейших действий
C++ Считывание вещественных переменных до определенного символа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
06.11.2012, 21:20     Считывание по 4 символа из файла #2
нашел такую штуку. считывает все инты в вектор:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
#include <iterator>
 
int main()
{
    const std::string str = "d:\\file.txt";
    std::ifstream in(str.c_str());
 
    std::istream_iterator <int> _iter(in);
    std::istream_iterator <int> _iter2;
    std::ostream_iterator <int> _iter3(std::cout," ");
 
    std::vector <int> vec(_iter,_iter2);
    std::copy(vec.begin(), vec.end(), _iter3);
 
    system("pause");
    return 0;
}
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
06.11.2012, 21:39  [ТС]     Считывание по 4 символа из файла #3
Эм ничего если честно непонятно. Более традиционно никак нельзя сделать?
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
06.11.2012, 21:41     Считывание по 4 символа из файла #4
можно посимвольно прочитать в чар и все.
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
06.11.2012, 22:42  [ТС]     Считывание по 4 символа из файла #5
Я это понимаю что можно, как это реализовать в коде?
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
09.11.2012, 19:19  [ТС]     Считывание по 4 символа из файла #6
Ввожу с файла в char:
C++
1
2
3
4
5
6
7
8
9
in=fopen(ima,"r");
    
            while(!feof(in))
            {   //for(k=0; k<kod; k++)
 
                        fscanf(in,"%s",&ch);
 
            }
         fclose(in);
Теперь пытаюсь весь массив засунуть в двумерный массив int. Вот так:
C++
1
2
3
4
5
6
7
 for(c1=0; c1<kod; c1++)
{ 
for(c3=0; c2<4 & c3<100; c2++ & c3++)
{
    mas[c1][c2]=atoi(&ch[c3]);
};
};
Только почему то все записывается в mas[0][0]. То есть не по элементно а все что было в ch одним разом. Было 1100110101 и засунулось тоже самое а не по элементно. В чем проблема?

Добавлено через 3 часа 16 минут
В чем проблема объясните пожалуйста?

Добавлено через 22 часа 35 минут
Теперь другая проблема: не могу передать в функцию указатель на двумерный массив:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
 
void vvod_kod(char yma[100],int kod,int** mas)
{
    char ch[100];
    int c1,c2=0,c3=0;
    
    FILE* in;
    in=fopen(yma,"r");
    
            while(!feof(in))
            {   
                            fscanf(in,"%s",&ch);
 
            }
         fclose(in);
 
for(c1=0; c1<kod; c1++)
         {
         for(c2=0; c2<4 && c3<100; c2++ && c3++)
            {
    char s[2];
    s[0]=ch[c3];
    s[1]=0;
    mas[c1][c2]=atoi(s);
            };
        };
 
}
 
 
void main()
{
    setlocale (LC_ALL, "Russian");
FILE* in;
FILE* out;
int i,j ,n, m, k,l;
int kod;
int a[100];
char ima[100];
int mas[100][100];
printf("Введите имя файла: \n");
scanf("%s",ima);
printf("Введите количество кодировок: \n");
scanf("%d",&kod);
int kol;
k=0;
vvod_kod(ima,kod,**mas[100][100]);
 
         int z, u3, ip = 0, u, u2;
for(u=0; u<kod; u++)
{ printf("Кодировка %d: ",u+1);
for(u2=0; u2<4; u2++)
{   
printf("%d",mas[u][u2]);
};
printf("\n");
};
        out=fopen("ouut.txt","w");
for(u=0; u<kod; u++)
{
for(u2=0; u2<4; u2++)
{   
                    fprintf(out,"%d", mas[u][u2]);
 
    };
fprintf(out,"\n");
};
 fclose(out);
 
FILE* buf;
char imbuf[100];
printf("Введите имя файла буфера: \n");
scanf("%s",imbuf);
    getch();
}
Вопрос в том как вызвать функцию с правильным параметром?

Добавлено через 3 часа 59 минут
Помогите кто нибудь!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2012, 19:47     Считывание по 4 символа из файла
Еще ссылки по теме:

Считывание из файла C++
Считывание из текстового файла с N-ого символа C++
C++ Считывание элементов до символа

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

Или воспользуйтесь поиском по форуму:
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
09.11.2012, 19:47     Считывание по 4 символа из файла #7
попробуй посмотреть тут Передача двумерного массива в функцию

Добавлено через 27 минут
насколько я понял, самый простой способ преобразовать в одномерный массив и его передать
Yandex
Объявления
09.11.2012, 19:47     Считывание по 4 символа из файла
Ответ Создать тему
Опции темы

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