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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Принадлежность множеству http://www.cyberforum.ru/cpp-beginners/thread630915.html
На дельфи есть прекрасный оператор IN, который проверяет принадлежность множуству (я это так называю) То есть if Key IN then ... А как такое реализовать на С++?
C++ Задача на рекурсию Задание : Напишите функцию возведения в степень, которая работала бы как для положительных, так и для отрицательных значений n: a^(-n)=1/a^n. Что-то написал, только для отрицательных значений степени выводит 0 , помогите найти ошибку . http://www.cyberforum.ru/cpp-beginners/thread630892.html
C++ Создание проекта Hello World
Самое дно программирования на Сишке и уже какая-то проблема. Облазил много страниц, но именно своей проблемы не нашел. Делаю все по книге Либерти Джонса "Освой самостоятельно за 21 день". Создаю пустой проект, создаю файл "Файл C++". И тут начинается первая нестыковка c книгой. В книге: Во вкладке Файл выберите пункт С++ и введите его имя hello. У меня: Нету куда вводить имя, изменить имя...
C++ Дозапись в бинарный файл
Всем привет! Необходимо в процессе работы программы производить дозапись в бинарный файл. Как я понимаю необходимо спозиционировать put - указатель в конец файла и произвести дозапись. Только не совсем понимаю как поставить указатель на конец файла. И нужно тогда поставить флаг при создании файла, а какой? Заранее спасибо.
C++ Как правильно применять оператор switch http://www.cyberforum.ru/cpp-beginners/thread630878.html
Подскажите пожалуйста, в чём здесь ошибка. Язык С++. Среда C++ Builder 6. void __fastcall TForm1::Button1Click(TObject *Sender) { int a,a1,b,e1; a=Edit1->Text.ToInt(); b=Edit2->Text.ToInt(); switch (a) { case 1: a==2; Label3->Caption="Ошибка"; break;
C++ Дерево отрезков Добрый день, помогите пож-та решить задачи на с++. Нашел решение (расписаны все алгоритмы, процедуры подсчета и т. д.), но сложность состоит в том, что я не понимаю строищихся структур и вообще никогда не программировал на c++.Поэтому прошу помочь собрать все воедино (чтение из файла, работа программы, запись в файл). Основная задача - считать с файла, воспользоваться функцией, вывести в файл ... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
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-или уже строку а не поток.

Миниатюры
Считывание из файла  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru