Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 30.07.2012
Сообщений: 53

Считывание из файла

30.07.2012, 22:39. Показов 3184. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите, пожалуйста, новичку разобраться=)
Есть файл, в котором расположена информация примерно такого содержания
1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
1946 12 31 0 -528 0 -499 0 9999 9 0 2 0
1947 1 1 0 -477 0 -383 0 -366 0 1 0 0
1947 1 2 0 -406 0 -356 0 -335 0 5 0 0
1947 1 3 0 -481 0 -408 0 -373 0 0 2 0
Нужно считать информацию из файла 4 столбца(1-столбец год, второй-месяц-3-день и 8-температура). Причем если в 8 столбце стоит значение 9999, то строку не выписывать во второй файл. Затем надо посчитать и вывести среднее арифметическое температур по годам , т.е. среднюю температуруза 47 год, 48 и т.д. Подскажите, как?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.07.2012, 22:39
Ответы с готовыми решениями:

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

Считывание файла в массив и запись нового файла
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...

Считывание файла
ВОбщем при считывании файла стандартными способами FILE *file = fopen(filename, "r"); if(file == NULL) { return; } ...

20
60 / 60 / 8
Регистрация: 15.10.2010
Сообщений: 356
30.07.2012, 23:08
Считываете число за числом, считая число считанных чисел. Пусть это число (число считанных чисел) равно n.
Берете остаток от деления этого n на число столбцов. Получаете конкретный индекс столбца.
В зависимости от этого номера, кладете в соответствующую ячейку структуры. Что то вроде
C++
1
2
3
4
5
6
struct S {
  int year;
  int month;
  int year;
  int t;
};
И кладете в массив или в вектор сформированную строку (когда n % 8 == 0). Получаете массив структур. Поиск среднего арифметического по годам - тривиально.

Дерзайте.
1
49 / 44 / 8
Регистрация: 06.09.2010
Сообщений: 419
30.07.2012, 23:10
Считываешь построчно и делаешь анализ строки.
Код за тебя писать никто не будет.
для анализа даты и прочего, разбираешь строку. ТО есть начиная от нуля до первого пробела - это год, дальше от проблел+1 до след пробела - это месяц и так далее анализируешь.
Если тебе не надо анализировать даты и прочее а нудно только находить 9999 то делаешь поиск по строке, если он вернул позицию - значит не выполняем запись. и так далее.
0
1 / 1 / 0
Регистрация: 30.07.2012
Сообщений: 53
31.07.2012, 01:27  [ТС]
Считываете число за числом, считая число считанных чисел. Пусть это число (число считанных чисел) равно n.
Берете остаток от деления этого n на число столбцов. Получаете конкретный индекс столбца.
В зависимости от этого номера, кладете в соответствующую ячейку структуры. Что то вроде
C++
1
2
3
4
5
6
struct S {
  int year;
  int month;
  int year;
  int t;
};
И кладете в массив или в вектор сформированную строку (когда n % 8 == 0). Получаете массив структур. Поиск среднего арифметического по годам - тривиально.



ТОгда такой вопрос. Вот мой код
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAXLEN 1024
 
int main(void)
{
    FILE *ifp;
   FILE *fout
    int i, maxline = 8;
    char **lines, **p, buf[MAXLEN];
 
    if( (ifp = fopen("U24763", "r")) == NULL) {
        perror("fopen");
        return 1;
    }
    if(fout = fopen("results"),"w"){
 
    }
 
    if( (lines = (char **) malloc(sizeof(char *) * maxline)) == NULL) {
        perror("malloc");
        return 1;
    }
    for(i = 0; ; i++) {
        if(i >= maxline) {
            maxline *= 2;
            if( (p = (char **) realloc(lines, sizeof(char *) * maxline)) == NULL) {
                perror("realloc");
                return 1;
            }
            lines = p;
        }
        if( (lines[i] = (char *) malloc(MAXLEN)) == NULL) {
            perror("malloc");
            return 1;
        }
        if(fgets(buf, sizeof(buf), ifp) == NULL)
            break;
        strcpy(lines[i], buf);
    }
    fclose(ifp);
    maxline = i + 1;
    for(i = 0; i < maxline; i++)
        printf("%s", lines[i]);
    fwrite("%s", lines[i]);
   fclose(fout);
    return 0;
}
При записывании из одного файла в другой выдает массу ошибок. Что я делаю неверно?
0
60 / 60 / 8
Регистрация: 15.10.2010
Сообщений: 356
31.07.2012, 01:51
Цитата Сообщение от kuziashagrath Посмотреть сообщение
for(i = 0; i < maxline; i++)
printf("%s", lines[i]);
fwrite("%s", lines[i]);
С ходу вижу только вот это.
i - необъявленный идентификатор.
Забыли где надо фигурные скобки.

В следующий раз используйте теги [ CPP ] [ / CPP ]

Ух как даже. Вы переопределили занова идентификатор. Не стоит так делать. Нечитабельно.

Добавлено через 10 минут
Быть может вот так будет по-лучше?
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAXLEN 1024
 
int main(void)
{
    FILE *ifp;
    FILE *fout
    int i, maxline = 8;
    char **lines, **p, buf[MAXLEN];
 
    if( (ifp = fopen("U24763", "r")) == NULL) {
        perror("fopen");
        return 1;
    }
    if(fout = fopen("results"),"w"){
 
    }
 
    if( (lines = (char **) malloc(sizeof(char *) * maxline)) == NULL) {
        perror("malloc");
        return 1;
    }
    for(i = 0; ; i++) {
        if(i >= maxline) {
            maxline *= 2;
            if( (p = (char **) realloc(lines, sizeof(char *) * maxline)) == NULL) {
                perror("realloc");
                return 1;
            }
        lines = p;
        }
        if( (lines[i] = (char *) malloc(MAXLEN)) == NULL) {
            perror("malloc");
            return 1;
        }
        if(fgets(buf, sizeof(buf), ifp) == NULL)
            break;
        strcpy(lines[i], buf);
    }
    fclose(ifp);
    maxline = i + 1;
    for(i = 0; i < maxline; i++)
        printf("%s", lines[i]);
    fwrite("%s", lines[i]);
    fclose(fout);
    return 0;
}
Добавлено через 8 минут
Документация к
C++
1
fwrite("%s", lines[i]);
Для чтения и записи данных, тип которых может занимать более 1 байта, в файловой системе языка С имеется две функции: fread() и fwrite(). Эти функции позволяют читать и записывать блоки данных любого типа. Их прототипы следующие:

C++
1
2
size_t fread(void *буфер, size_t колич_байт, size_t счетчик, FILE *уф);
size_t fwrite(const void *буфер, size_t колич_байт, size_t счетчик, FILE *уф);
Используйте fprintf();

Вот еще...
C++
1
maxline = i + 1;
После выделения для i-ой ячейки массива памяти, i - инкрементируется. Далее, maxline = i + 1; а далее - цикл по i до maxline. Последний элемент массива - не существует.
Аналогично для заведомо неверного fwrite.

К тому же, в файл вы пытаетесь записать только последнюю считанную строку. Имейте это в виду.

Добавлено через 1 минуту
Как то так. Невооруженным взглядом больше ошибок не видно.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.07.2012, 10:42
HomeR_J_SimpsoN, нельзя так читать это файл как ты предлагаешь - числа там записаны в текстовом формате, а fread читаем бинарку. Для данного задания следует использовать либо fscanf либо если пишем на плюсах то потоковый ввод ifstream >>
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
31.07.2012, 10:54
C++
1
if(fout = fopen("results"),"w"){
Не понятно, но здорово..

Я б считывал всю строку и использовал
C++
1
int sscanf ( const char * str, const char * format, ...);
.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.07.2012, 11:08
Ниже код на Си по чтению и печати содержимого файла, как поступать с массивом структур это на ваше усмотрение
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <stdio.h>
#include <stdlib.h>
 
//1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
typedef struct
{
    int year;
    int month;
    int day;
    int param4;
    int param5;
    int param6;
    int param7;
    int param8;
    int param9;
    int param10;
    int param11;
    int param12;
    int t;
}FILE_DATA;
 
int main()
{
    int i;//Ñ÷¸ò÷èê
    int n = 0;//Áóäåò ñîäåðæàòü ÷èñëî ñèòàííûõ ñòðîê
    FILE_DATA * pList = NULL;//Óêàçàòåëü íà ìàññèâ ñòðóêòóð FILE_DATA
    FILE * file = fopen("input.txt","rb");//Èíèöèàëèçèðóåì ïîòîê ÷òåíèÿ
    if(file == NULL)
        printf("Error open input.txt\n");
    else
    {
        //Âûäåëÿåì ïàìÿòü ïîä ïåðâóþ ñòðóêòóðó ìàññèâà
        pList = (FILE_DATA *)malloc(sizeof(FILE_DATA));
        for(n = 0; !feof(file); )
        {
            //Ìàëî êòî çíàåò íî fscanf âîçâðàùàåò
            //÷èñëî ñ÷èòàííûõ ïàðàìåòðîâ
            if
            (13 == //Êàê ðàç ïðîâåðÿåì âñå ëè 13 ïàðàìåòðîâ ñ÷èòàëè
                fscanf
                (
                    file,
                    "%d %d %d %d %d %d %d %d %d %d %d %d %d\n",
                    &pList[n].year,
                    &pList[n].month,
                    &pList[n].day,
                    &pList[n].param4,
                    &pList[n].param5,
                    &pList[n].param6,
                    &pList[n].param7,
                    &pList[n].param8,
                    &pList[n].param9,
                    &pList[n].param10,
                    &pList[n].param11,
                    &pList[n].param12,
                    &pList[n].t
                )
            )
            {
                //Åñëè ÷òåíèå óñïåøíî ïå÷àòàåò n-óþ ñòðóêòóðó
                printf
                (
                    "%04d %02d %02d %d %d %d %d %d %d %d %d %d %d\n",
                    pList[n].year,
                    pList[n].month,
                    pList[n].day,
                    pList[n].param4,
                    pList[n].param5,
                    pList[n].param6,
                    pList[n].param7,
                    pList[n].param8,
                    pList[n].param9,
                    pList[n].param10,
                    pList[n].param11,
                    pList[n].param12,
                    pList[n].t
                );
                n = n + 1;//óâåëè÷èâàåì ñ÷¸ò÷èê ñòðóêòóð
                pList = (FILE_DATA *)
                    realloc//Óâåëè÷èâàåì ïàìÿòü ïîä ìàññèâ ñòðóêòóð
                    (
                        (void *)pList, 
                        (1 + n)*sizeof(FILE_DATA)//îäíîâðåìåííî 
                    );
                
            }
        }
        fclose(file);
        if(n == 0)
            printf("File input.txt not contain correct data\n");
        else
        {
            printf("Totlal count of read structures %d\n", n);
            //çäåñü ó íàñ ìàññèâ ñòðóêòóð èç n ýëåìåíòîâ
            //äàëåå äåëàì ñ íèì ÷òî äóøå óãîäíî
        }
    }
    printf("Enter any key for exit\n");
    getchar();
    return 0;
}
input.txt
1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
1946 12 31 0 -528 0 -499 0 9999 9 0 2 0
1947 1 1 0 -477 0 -383 0 -366 0 1 0 0
1947 1 2 0 -406 0 -356 0 -335 0 5 0 0
1947 1 3 0 -481 0 -408 0 -373 0 0 2 0
Проверка http://codepad.org/BAbYwLLY

Не по теме:

PS:Dr.Urban, не зачем этого делать - во первых мы наперёд ограничиваем длинну данных в строке(т.к. строку определённой длинны будем использовать), затем в дальнейшем при разборе всё равно бы scanf-или уже строку а не поток.

Миниатюры
Считывание из файла  
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.07.2012, 11:26
Вот простой вариант на плюсах без мап и векторов(ИМХО без них в этом задании не обойтись при построении высокоуровневого кода)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <fstream>
#include <iomanip>
#include <iostream>
using namespace std;
 
//Íåáîëüøîé âåëîñèïåäèê ïî äèíàìè÷åñêîìó àëëîêó â ïëþñàõ
template <class T>
T * cpp_realloc(T * ptr, int size)
{
    T * mem = new T[size];
    if(ptr)
    {
        mem = new T[size];
        memcpy((void *)mem,(void *)ptr,size);
        delete [] ptr;
    }
    return ptr = mem;
}
 
//1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
struct FILE_DATA
{
    int year;
    int month;
    int day;
    int param4;
    int param5;
    int param6;
    int param7;
    int param8;
    int param9;
    int param10;
    int param11;
    int param12;
    int t;
};
 
int main()
{
    int i;//Ñ÷¸ò÷èê
    int n = 0;//Áóäåò ñîäåðæàòü ÷èñëî ñèòàííûõ ñòðîê
    FILE_DATA * pList = NULL;//Óêàçàòåëü íà ìàññèâ ñòðóêòóð FILE_DATA
    ifstream file("input.txt");//Èíèöèàëèçèðóåì ïîòîê ÷òåíèÿ
    if(!file.is_open())
        cout<<"Error open input.txt\n";
    else
    {
        //Âûäåëÿåì ïàìÿòü ïîä ïåðâóþ ñòðóêòóðó ìàññèâà
        pList = new FILE_DATA[1];
        for(n = 0; !file.eof(); )
        {
            //Â ïëþñàõ íàêèíóâ if òîæå ìîæíî ïðîâåðèòü 
            //êîððåêòíîñòü ÷òåíèÿ ïàðàìåòðîâ
            if
            (file>>pList[n].year
                >>pList[n].month
                >>pList[n].day
                >>pList[n].param4
                >>pList[n].param5
                >>pList[n].param6
                >>pList[n].param7
                >>pList[n].param8
                >>pList[n].param9
                >>pList[n].param10
                >>pList[n].param11
                >>pList[n].param12
                >>pList[n].t
            )
            {
                //Åñëè ÷òåíèå óñïåøíî ïå÷àòàåò n-óþ ñòðóêòóðó
                cout<<setw(4)<<pList[n].year<<" "
                    <<setw(2)<<pList[n].month<<" "
                    <<setw(2)<<pList[n].day<<" "
                    <<pList[n].param4<<" "
                    <<pList[n].param5<<" "
                    <<pList[n].param6<<" "
                    <<pList[n].param7<<" "
                    <<pList[n].param8<<" "
                    <<pList[n].param9<<" "
                    <<pList[n].param10<<" "
                    <<pList[n].param11<<" "
                    <<pList[n].param12<<" "
                    <<pList[n].t<<endl;
                n = n + 1;//óâåëè÷èâàåì ñ÷¸ò÷èê ñòðóêòóð
                pList = (FILE_DATA *)
                    cpp_realloc//Óâåëè÷èâàåì ïàìÿòü ïîä ìàññèâ ñòðóêòóð
                    (
                        pList, 
                        (1 + n)
                    );
                
            }
        }
        file.close();
        if(n == 0)
            cout<<"File input.txt not contain correct data"<<endl;
        else
        {
            cout<<"Totlal count of read structures "<<n<<endl;
            //çäåñü ó íàñ ìàññèâ ñòðóêòóð èç n ýëåìåíòîâ
            //äàëåå äåëàì ñ íèì ÷òî äóøå óãîäíî
        }
    }
    cout<<"Enter any key for exit"<<endl;
    getchar();
    return 0;
}
Проверка http://codepad.org/k438viRn
Миниатюры
Считывание из файла  
0
 Аватар для xADMIRALx
70 / 64 / 5
Регистрация: 09.06.2012
Сообщений: 291
31.07.2012, 11:54
-=ЮрА=-,

Не по теме:

Спасибо за СИ-шный код,много полезного извлек :)

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.07.2012, 11:55
Вот вариант с картой
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <map>
#include <vector>
#include <fstream>
#include <iomanip>
#include <iostream>
using namespace std;
 
//1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
struct FILE_DATA
{
    int year;
    int month;
    int day;
    int param4;
    int param5;
    int param6;
    int param7;
    int param8;
    int param9;
    int param10;
    int param11;
    int param12;
    int t;
};
 
int main()
{
    int n;
    FILE_DATA pDATA = {0};//Òåïåðü íàì íóæíà âñåãî 1-íà ñòðóêòóðà
    //Çàìåíèì íàø óêàùàòåëü íà ìàññèâ íà êàðòó (ìàïó)
    map<int, FILE_DATA> mymap;
    map<int, FILE_DATA>::iterator it;//èòåðàòîð (òèïà ñ÷¸ò÷èêà)
    ifstream file("input.txt");//Èíèöèàëèçèðóåì ïîòîê ÷òåíèÿ
    if(!file.is_open())
        cout<<"Error open input.txt\n";
    else
    {
        //Âûäåëÿåì ïàìÿòü ïîä ïåðâóþ ñòðóêòóðó ìàññèâà
        for(n = 0;!file.eof(); )
        {
            //Â ïëþñàõ íàêèíóâ if òîæå ìîæíî ïðîâåðèòü 
            //êîððåêòíîñòü ÷òåíèÿ ïàðàìåòðîâ
            if
            (file>>pDATA.year
                >>pDATA.month
                >>pDATA.day
                >>pDATA.param4
                >>pDATA.param5
                >>pDATA.param6
                >>pDATA.param7
                >>pDATA.param8
                >>pDATA.param9
                >>pDATA.param10
                >>pDATA.param11
                >>pDATA.param12
                >>pDATA.t
            )
            {
                //âîò òàê äîáàâëåì â êàðòó ýëåìåíò
                //è íå äóìàåì î äèíàìè÷åñêîì âûäåëåíèè ïàìÿòè
                mymap.insert(make_pair(n,pDATA));
                n = n + 1;//óâåëè÷èâàåì ñ÷¸ò÷èê ñòðóêòóð
            }
        }
        file.close();
        if(n == 0)
            cout<<"File input.txt not contain correct data"<<endl;
        else
        {
            cout<<"Totlal count of read structures "<<n<<endl;
            //çäåñü ó íàñ ìàññèâ ñòðóêòóð èç n ýëåìåíòîâ
            //äàëåå äåëàì ñ íèì ÷òî äóøå óãîäíî
            //Ïîêàçûâàþ êàê ÷èòàòü êàðòó
            for(it = mymap.begin(); it != mymap.end(); it++)
            {
                pDATA = (*it).second;
                cout<<setw(4)<<pDATA.year<<" "
                    <<setw(2)<<pDATA.month<<" "
                    <<setw(2)<<pDATA.day<<" "
                    <<pDATA.param4<<" "
                    <<pDATA.param5<<" "
                    <<pDATA.param6<<" "
                    <<pDATA.param7<<" "
                    <<pDATA.param8<<" "
                    <<pDATA.param9<<" "
                    <<pDATA.param10<<" "
                    <<pDATA.param11<<" "
                    <<pDATA.param12<<" "
                    <<pDATA.t<<endl;
            }
        }
    }
    cout<<"Enter any key for exit"<<endl;
    getchar();
    return 0;
}
Миниатюры
Считывание из файла  
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.07.2012, 12:06
Вот некая абстракция для последнего кода с картой (для лучшего понимания)
http://codepad.org/q5b4MSQy
0
1 / 1 / 0
Регистрация: 30.07.2012
Сообщений: 53
31.07.2012, 13:42  [ТС]
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <stdio.h>
#include <stdlib.h>
 
//1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
typedef struct
{
    int year;
    int month;
    int day;
    int param4;
    int param5;
    int param6;
    int param7;
    int param8;
    int param9;
    int param10;
    int param11;
    int param12;
    int t;
}FILE_DATA;
 
int main()
{
    int i;//Счётчик
    int n = 0;//Будет содержать число ситанных строк
    FILE_DATA * pList = NULL;//Указатель на массив структур FILE_DATA
    FILE * file = fopen("U24763","rb");//Инициализируем поток чтения
    FILE * file2 = fopen("input2.txt","w");
 
 
    if(file == NULL)
        printf("Error open input.txt\n");
    else
    {
        //Выделяем память под первую структуру массива
        pList = (FILE_DATA *)malloc(sizeof(FILE_DATA));
        for(n = 0; !feof(file); )
        {
            //Мало кто знает но fscanf возвращает
            //число считанных параметров
            if
            (13 == //Как раз проверяем все ли 13 параметров считали
                fscanf
                (
                    file,
                    "%d %d %d %d %d %d %d %d %d %d %d %d %d\n",
                    &pList[n].year,
                    &pList[n].month,
                    &pList[n].day,
                    &pList[n].param4,
                    &pList[n].param5,
                    &pList[n].param6,
                    &pList[n].param7,
                    &pList[n].param8,
                    &pList[n].param9,
                    &pList[n].param10,
                    &pList[n].param11,
                    &pList[n].param12,
                    &pList[n].t
                )
            )
 
 
                if( &pList[n].param9 ! == 9999
 
                    {
                //Если чтение успешно печатает n-ую структуру
                printf
                (
                    "%04d %02d %02d %d %d %d %d %d %d %d %d %d %d\n",
                    pList[n].year,
                    pList[n].month,
                    pList[n].day,
                    pList[n].param4,
                    pList[n].param5,
                    pList[n].param6,
                    pList[n].param7,
                    pList[n].param8,
                    pList[n].param9,
                    pList[n].param10,
                    pList[n].param11,
                    pList[n].param12,
                    pList[n].t
                );
 
                fprintf
                (file2,
                    "%04d %02d %02d %d %d %d %d %d %d %d %d %d %d\n",
                    pList[n].year,
                    pList[n].month,
                    pList[n].day,
                    pList[n].param4,
                    pList[n].param5,
                    pList[n].param6,
                    pList[n].param7,
                    pList[n].param8,
                    pList[n].param9,
                    pList[n].param10,
                    pList[n].param11,
                    pList[n].param12,
                    pList[n].t
                );
                );
 
 
                n = n + 1;//увеличиваем счётчик структур
                pList = (FILE_DATA *)
                    realloc//Увеличиваем память под массив структур
                    (
                        (void *)pList,
                        (1 + n)*sizeof(FILE_DATA)//одновременно
                    );
 
            }
        }
        fclose(file);
        fclose(file2);
        if(n == 0)
            printf("File input.txt not contain correct data\n");
        else
        {
            printf("Totlal count of read structures %d\n", n);
            //здесь у нас массив структур из n элементов
            //далее делам с ним что душе угодно
        }
    }
    printf("Enter any key for exit\n");
    getchar();
    return 0;
}
Юрий,Спасибо огромное! Я попробовал Ваш первый код, работает,все замечательно! У меня теперь вот такой вопрос. Я хочу вывести только те строки, где у меня в 9 столбце нет числа 9999. Я поставил условие
C++
1
  if( &pList[n].param9 ! == 9999);
В чем здесь ошибка?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.07.2012, 14:19
Цитата Сообщение от kuziashagrath Посмотреть сообщение
if( &pList[n].param9 ! == 9999);
сразу три - вот так это условие следует записать
C
1
2
3
4
if( pList[n].param9 ! = 9999)
{
     //
}
0
1 / 1 / 0
Регистрация: 30.07.2012
Сообщений: 53
31.07.2012, 17:34  [ТС]
Еще раз спасибо огромное,Юрий! Да, все-таки я Вас еще помучаю=))
PHP
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
//1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
typedef struct
{
    int year;
    int month;
    int day;
    int param4;
    int param5;
    int param6;
    int param7;
    int param8;
    int t;
    int param10;
    int param11;
    int param12;
    int param13;
}FILE_DATA;
int l=0;
int sum=0;
int arifmet;
int main()
{
    int i;//Счётчик
    int n = 0;//Будет содержать число ситанных строк
    FILE_DATA * pList = NULL;//Указатель на массив структур FILE_DATA
    FILE * file = fopen("U24763","rb");//Инициализируем поток чтения
    FILE * file2 = fopen("input2.txt","w");
 
 
    if(file == NULL)
        printf("Error open input.txt\n");
    else
    {
        //Выделяем память под первую структуру массива
        pList = (FILE_DATA *)malloc(sizeof(FILE_DATA));
        for(n = 0; !feof(file); )
        {
            //Мало кто знает но fscanf возвращает
            //число считанных параметров
            if
            (13 == //Как раз проверяем все ли 13 параметров считали
                fscanf
 
 
                    (
                    file,
                    "%d %d %d %d %d %d %d %d %d %d %d %d %d\n",
                    &pList[n].year,
                    &pList[n].month,
                    &pList[n].day,
                    &pList[n].param4,
                    &pList[n].param5,
                    &pList[n].param6,
                    &pList[n].param7,
                    &pList[n].param8,
                    &pList[n].t,
                    &pList[n].param10,
                    &pList[n].param11,
                    &pList[n].param12,
                    &pList[n].param13
                )
            )
 
 
 
                    {
                //Если чтение успешно печатает n-ую структуру
                printf
                (
                    "%04d %02d %02d %d %d %d %d %d %d %d %d %d %d\n",
                    pList[n].year,
                    pList[n].month,
                    pList[n].day,
                    pList[n].param4,
                    pList[n].param5,
                    pList[n].param6,
                    pList[n].param7,
                    pList[n].param8,
                    pList[n].t,
                    pList[n].param10,
                    pList[n].param11,
                    pList[n].param12,
                    pList[n].param13
                   );
                if (pList[n].t!=9999){
 
 
 
 
                fprintf
                (file2,
                    "%04d %02d %02d %d %d %d \n",
                    pList[n].year,
                    pList[n].month,
                    pList[n].day,
                    pList[n].t,
                     l,
                    sum);
 
//                );
 
                }
                sum=sum+pList[n].t;
                 l+=1;
 
                n = n + 1;//увеличиваем счётчик структур
                pList = (FILE_DATA *)
                    realloc//Увеличиваем память под массив структур
                    (
                        (void *)pList,
                        (1 + n)*sizeof(FILE_DATA)//одновременно
                    );
 
 
           }
 
        }
//          arifmet=sum/l;
          fprintf(file2,"%d",sum/l);
        fclose(file);
        fclose(file2);
        if(n == 0)
            printf("File input.txt not contain correct data\n");
        else
        {
            printf("Totlal count of read structures %d\n", n);
            //здесь у нас массив структур из n элементов
            //далее делам с ним что душе угодно
        }
    }
    printf("Enter any key for exit\n");
    getchar();
    return 0;
}
Так вопрос-я посчитал суммы температур и сумму строк. Как вывести среднее арифметическое? ТОчнее даже так поставлю вопрос-почему данная величина не выводится на печать в файл? В чем проблема это строки?
PHP
1
          fprintf(file2,"%d",sum/l);
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.07.2012, 17:42
kuziashagrath, можно ещё раз попросить задание полностью, т.е куда что писать, среднее арифметическое чего от чего, чтобы я писал уже готовый код под твои нужды
1
1 / 1 / 0
Регистрация: 30.07.2012
Сообщений: 53
01.08.2012, 11:43  [ТС]
Юр, спасибо тебе огромное, код почти написан, осталось разобраться, почему он ругается и при переходе с одной строки на другую=)) Были даны 13 столбцов, из них надо было убрать те строки, где есть цифра 9999, затем взять среднее арифметическое по годам, т.е. взять среднее за 1958 год, 59 и т.д. и вывести это все в печать=)) В общем, в принципе писать особо ничего не надо, спаисбо тебе огромное-итак фактически задание за меня сделал. Тут спасибо ввиде +1 выдается?=)) У меня была идея такая-поставить в цикл условия-если цифра в 13 столбце и в n+1 строке= n строке, тогда суммируем элементы, если же равентсво не выполняется, тогда выводим на печать сумму и количество подсчитанных строк(ну и их отношения). далее обнуляем их и пускаем заново цикл.Вот собственно фактически твоя же программа
PHP
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
//1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
typedef struct
{
    int year;
    int month;
    int day;
    int param4;
    int param5;
    int param6;
    int param7;
    int param8;
    int t;
    int param10;
    int param11;
    int param12;
    int param13;
}FILE_DATA;
int l=0;
int sum=0;
int arifmet;
int main()
{
    int i;//Счётчик
    int n = 0;//Будет содержать число ситанных строк
    FILE_DATA * pList = NULL;//Указатель на массив структур FILE_DATA
    FILE * file = fopen("U24763","rb");//Инициализируем поток чтения
    FILE * file2 = fopen("input2.txt","w");
 
 
    if(file == NULL)
        printf("Error open input.txt\n");
    else
    {
        //Выделяем память под первую структуру массива
        pList = (FILE_DATA *)malloc(sizeof(FILE_DATA));
        for(n = 0; !feof(file); )
        {
            //Мало кто знает но fscanf возвращает
            //число считанных параметров
            if
            (13 == //Как раз проверяем все ли 13 параметров считали
                fscanf
 
 
                    (
                    file,
                    "%d %d %d %d %d %d %d %d %d %d %d %d %d\n",
                    &pList[n].year,
                    &pList[n].month,
                    &pList[n].day,
                    &pList[n].param4,
                    &pList[n].param5,
                    &pList[n].param6,
                    &pList[n].param7,
                    &pList[n].param8,
                    &pList[n].t,
                    &pList[n].param10,
                    &pList[n].param11,
                    &pList[n].param12,
                    &pList[n].param13
                )
            )
 
 
 
                    {
                //Если чтение успешно печатает n-ую структуру
                printf
                (
                    "%04d %02d %02d %d %d %d %d %d %d %d %d %d %d\n",
                    pList[n].year,
                    pList[n].month,
                    pList[n].day,
                    pList[n].param4,
                    pList[n].param5,
                    pList[n].param6,
                    pList[n].param7,
                    pList[n].param8,
                    pList[n].t,
                    pList[n].param10,
                    pList[n].param11,
                    pList[n].param12,
                    pList[n].param13
                   );
                if (pList[n].t!=9999){
 
                    if (pList[n+1].year==pList[n].year){
                        sum=sum+pList[n].t;
                         l++;}
                     else   {
                             fprintf
                              (file2,
                                "%04d \n",
                                  pList[n].year,
                                  sum/(l+1));
                                  sum=0;
                                    l=0;
                                }
 
 
                                        }
 
                n = n + 1;//увеличиваем счётчик структур
                pList = (FILE_DATA *)
                    realloc//Увеличиваем память под массив структур
                    (
                        (void *)pList,
                        (1 + n)*sizeof(FILE_DATA)//одновременно
                    );
 
 
           }
 
        }
//          fwrite(file2,arifmet);
        fclose(file);
        fclose(file2);
        if(n == 0)
            printf("File input.txt not contain correct data\n");
        else
        {
            printf("Totlal count of read structures %d\n", n);
            //здесь у нас массив структур из n элементов
            //далее делам с ним что душе угодно
        }
    }
    printf("Enter any key for exit\n");
    getchar();
    return 0;
}
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
                    if (pList[n+1].year==pList[n].year){
                        sum=sum+pList[n].t;
                         l++;}
                     else   {
                             fprintf
                              (file2,
                                "%04d \n",
                                  pList[n].year,
                                  sum/(l+1));
                                  sum=0;
                                    l=0;
                                }
 
 
                                        }
а вот главное отличие=)) только он почему то ругается при переходе с одного года на другой. Если сможешь подсказать ошибку, суперски. Если замучал-спасибо тебе огромное-очень сильно помог и так!=))


а само задание изначально выглядело примерно так
1966 3 18 0 -343 0 -240 0 -148 0 0 2 0
1966 3 19 0 -348 0 -234 0 -146 0 0 2 0
1967 3 20 0 -240 0 -174 0 -110 0 0 2 0
1967 3 21 0 -158 0 -132 0 -109 0 16 0 0
1968 3 22 0 -164 0 -103 0 -44 0 16 0 0
1968 3 23 0 -130 0 -116 0 -63 0 0 2 0
1968 3 24 0 -184 0 -139 0 -90 0 0 2 0
1969 3 25 0 -154 0 -133 0 -91 0 0 2 0
1969 3 26 0 -245 0 -166 0 -72 0 2 0 0
1969 3 27 0 -293 0 -175 0 -54 0 0 2 0
1970 3 28 0 -262 0 -158 0 -54 0 0 2 0
1970 3 29 0 -194 0 -95 0 -2 0 4 0 0
1970 3 30 0 -104 0 -53 0 0 0 0 2 0
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
01.08.2012, 12:57
kuziashagrath, твой код править не хочу (кроме моей части в нём нет ничего верного прошу не воспринимать это как личное). Также исходных данных не достаточно, пишешь о 59-м годе а вривёл 46-47,66-70 (запомни правильное задание все исходные данные это единственный ключ к тому чтобы код решал именно ту задачу которую тебе требуется).
Короче я немножко подправил твои исходные данные(добил в паре строк в 9-й столбец 9999), а также находил средне для 7-го столбца т.к последний (как я понял темпереатура во всех строках == 0 и не видно было бы подсчёта среднего).
Ниже код который после прочтения данных запрашивает нужный год и осуществляет выгрузку валижных строк нужного года в файл одновременно подсчитывая среднее в 7-м столбце(опять же для строк без 9999 в 9-м столбце)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include <stdio.h>
#include <stdlib.h>
 
//1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
typedef struct
{
    int year;
    int month;
    int day;
    int param4;
    int param5;
    int param6;
    int param7;
    int param8;
    int param9;
    int param10;
    int param11;
    int param12;
    int t;
}FILE_DATA;
 
int main()
{
    int i;//Ñ÷¸ò÷èê
    int n = 0;//Áóäåò ñîäåðæàòü ÷èñëî ñèòàííûõ ñòðîê
    double middle = 0;//Áóäåò ñîäåðæàòü ñðåäíå çíà÷åíèå 7-ãî ñòîëáöà
    //íàäî áóäåò äðóãîé ïðîñòî â êîäå óñëîâèå(âåðíåé èíäåêñ ïîìåíÿåì)
    int m = 0;//Áóäåò ñîäåðæàòü ÷èñëî çàïèñåé íóæíîãî ãîäà â êîòîðûõ 9-é ñòîëáåö íå 9999
    int year = 0;//Áóäåò ñîäåðæàòü çíà÷åíèå ãîäà äëÿ êîòîðîãî îñóùåñòâëÿåòñÿ ðàñ÷¸ò
    FILE_DATA * pList = NULL;//Óêàçàòåëü íà ìàññèâ ñòðóêòóð FILE_DATA
    FILE * file = fopen("input.txt","rb");//Èíèöèàëèçèðóåì ïîòîê ÷òåíèÿ
    if(file == NULL)
        printf("Error open input.txt\n");
    else
    {
        //Âûäåëÿåì ïàìÿòü ïîä ïåðâóþ ñòðóêòóðó ìàññèâà
        pList = (FILE_DATA *)malloc(sizeof(FILE_DATA));
        for(n = 0; !feof(file); )
        {
            //Ìàëî êòî çíàåò íî fscanf âîçâðàùàåò
            //÷èñëî ñ÷èòàííûõ ïàðàìåòðîâ
            if
            (13 == //Êàê ðàç ïðîâåðÿåì âñå ëè 13 ïàðàìåòðîâ ñ÷èòàëè
                fscanf
                (
                    file,
                    "%d %d %d %d %d %d %d %d %d %d %d %d %d\n",
                    &pList[n].year,
                    &pList[n].month,
                    &pList[n].day,
                    &pList[n].param4,
                    &pList[n].param5,
                    &pList[n].param6,
                    &pList[n].param7,
                    &pList[n].param8,
                    &pList[n].param9,
                    &pList[n].param10,
                    &pList[n].param11,
                    &pList[n].param12,
                    &pList[n].t
                )
            )
            {
                //Åñëè ÷òåíèå óñïåøíî ïå÷àòàåò n-óþ ñòðóêòóðó
                printf
                (
                    "%04d %02d %02d %d %d %d %d %d %d %d %d %d %d\n",
                    pList[n].year,
                    pList[n].month,
                    pList[n].day,
                    pList[n].param4,
                    pList[n].param5,
                    pList[n].param6,
                    pList[n].param7,
                    pList[n].param8,
                    pList[n].param9,
                    pList[n].param10,
                    pList[n].param11,
                    pList[n].param12,
                    pList[n].t
                );
                n = n + 1;//óâåëè÷èâàåì ñ÷¸ò÷èê ñòðóêòóð
                pList = (FILE_DATA *)
                    realloc//Óâåëè÷èâàåì ïàìÿòü ïîä ìàññèâ ñòðóêòóð
                    (
                        (void *)pList, 
                        (1 + n)*sizeof(FILE_DATA)//îäíîâðåìåííî 
                    );
                
            }
        }
        fclose(file);
        if(n == 0)
            printf("File input.txt not contain correct data\n");
        else
        {
            printf("Totlal count of read structures %d\n", n);
            //çäåñü ó íàñ ìàññèâ ñòðóêòóð èç n ýëåìåíòîâ
            //äàëåå äåëàì ñ íèì ÷òî äóøå óãîäíî
 
            //ß òàê ïîíÿë ìû â ôàéë äîëæíû íóæíûé ãîä ïåðåíåñòè
            //íó òàê èñïîëüçóåì òîò æå óêàçàòåëü
            file = fopen("output.txt","wt");
            if(file == NULL)
                printf("Error open output.txt\n");
            else
            {
                printf("Enter year : ");
                scanf("%d",&year);//Ââîäèì èíòåðåñóþùèé íàñ ãîä
                getchar();//Óáèðàåì \n îò ââîäà Enter
                for(i = 0; i < n; i = i + 1)
                {
                    //Ïðîâåðêà ÷òî ãîä òîò ÷òî ìû èùåì
                    if(pList[i].year == year)
                    //Ïðîâåðêà 9-é ñòîëáåö != 9999
                    if(pList[i].param9 != 9999)
                    {
                        //ß ïëþñóþ 7-é ñòîëáåö à òàì óæå ïëþñóé êàêîé òåáå íàäî
                        middle = middle + pList[i].param7;
                        m = m + 1;//Óâåëè÷èâåì ñ÷¸ò÷èê çàïèñåé
                        //óäîâëåòâîðÿþùèõ íàøåìó êðèòåðèþ 
                        //ãîä + 9 ñòîëáåö!=9998
                        //Ïèøåì â ôàéëèê
                        fprintf
                        (
                            file,
                            "%d %d %d %d %d %d %d %d %d %d %d %d %d\n",
                            pList[i].year,
                            pList[i].month,
                            pList[i].day,
                            pList[i].param4,
                            pList[i].param5,
                            pList[i].param6,
                            pList[i].param7,
                            pList[i].param8,
                            pList[i].param9,
                            pList[i].param10,
                            pList[i].param11,
                            pList[i].param12,
                            pList[i].t
                        );
                    }
                }
                fclose(file);
                if(m == 0)
                    printf("input.txt not contain neccessary data\n");
                else
                {
                    printf
                    (
                        "middle value of 7-th column : %.3f\n",//Íàïîìèíàþ äëÿ âåùåñòâåííîãî òàêîé ñïåöèôèêàòîð
                        (middle / m)//Äåëèì íàøó ñóììó íà ÷èñëî âàëèäíûõ ñòðîê
                    );
                }
            }
        }
    }
    printf("Enter any key for exit\n");
    getchar();
    return 0;
}
output.txt
1968 3 22 0 -164 0 -103 0 -44 0 16 0 0
1968 3 23 0 -130 0 -116 0 -63 0 0 2 0
Миниатюры
Считывание из файла  
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
01.08.2012, 13:03
Касательно твоих ошибок
Цитата Сообщение от kuziashagrath Посмотреть сообщение
if (pList[n].t!=9999){
- чё за бред, тебе 9-й столбец надо а не столбец температуры
Цитата Сообщение от kuziashagrath Посмотреть сообщение
Причем если в 8 столбце стоит значение 9999, то строку не выписывать во второй файл.
- причём по файлу как я понял это 9-й а не 8-й столбец

Цитата Сообщение от kuziashagrath Посмотреть сообщение
if (pList[n+1].year==pList[n].year){
* * * * * * * * * * * * sum=sum+pList[n].t;
* * * * * * * * * * * * *l++;}
* * * * * * * * * * *else * {
* * * * * * * * * * * * * * *fprintf
* * * * * * * * * * * * * * * (file2,
* * * * * * * * * * * * * * * * "%04d \n",
* * * * * * * * * * * * * * * * * pList[n].year,
* * * * * * * * * * * * * * * * * sum/(l+1));
* * * * * * * * * * * * * * * * * sum=0;
* * * * * * * * * * * * * * * * * * l=0;
* * * * * * * * * * * * * * * * }
- дурацкое условие, хотя да оно способно отработать но концепт неверный, проберать надо все строки (а если бы всё не отсортированно по годам было и скажем за 59 1-й тсрокой шёл 78 - как бы твой алгоритм работал?)

Цитата Сообщение от kuziashagrath Посмотреть сообщение
"%04d \n",
* * * * * * * * * * * * * * * * * pList[n].year,
* * * * * * * * * * * * * * * * * sum/(l+1));
- кто считает среднее арифметическое как целое
К примеру идут числа 17 + 4 + 5 ну чему равно их среднее арифметическое? наверное 26/3 ~ 8.67 но никак не 8 который получится при целочисленном делении 26 на 3.
Есть ещё замечания но они не концептуальны и их пожалуй опущу...
0
1 / 1 / 0
Регистрация: 30.07.2012
Сообщений: 53
02.08.2012, 16:10  [ТС]
Юр, еще раз спасибо огромное за коды, в результате разобрался где у меня ошибка. Понял, где и как выводить. Кстати, я долольно простой человек, так что не обижаюсь на критику, отношусь с юмором. Я учусь, а если делаешь что то впервые, ошибки неизбежны=)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.08.2012, 16:10
Помогаю со студенческими работами здесь

Считывание из файла
Дан файл с данными типа: Петров Роман 1989 04 15 5 4 3 5 естесственно, что данных больше.. Последние 4 цифры - это оценки.. Надо...

Считывание из файла в С++
Всем доброго времени суток. Есть задача: Дан текстовый файл в котором записаны данные следующим образом 1 12 3 2 3 11 5 2 11 ...

считывание из файла
Считывает нормально но как я понял надо перевести в int для расчетов, Как это сделать? #include &lt;iostream&gt; #include...

Считывание из файла
Здравствуйте! Такой вопрос. Как можно считать информацию из файла следующим образом: в текстовом файле имеется 3 столбца, мне же нужно...

Считывание файла
Как можно считать из файла строку 110011, как массив чисел, заранее спасибо!


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru