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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Шаблон стека и перегрузка передачи в поток http://www.cyberforum.ru/cpp-beginners/thread797635.html
Нужно написать шаблон стека с перегрузкой << и >> для ввода/вывода Внутри класса функция объявлена так: template<class Type> friend ostream& operator<<(ostream& out, const Stack<Type>&); template<class Type> ostream& operator<<(ostream& out, const Stack<Type>& S) { if (S.top == NULL) out<<"Stack is empty\n"; else
C++ OpenGL в CodeBlocks Мучаюсь с установкой OpenGL в CodeBlocks уже целый вечер. Все нервы вытрепал. Пожалуйста опишите здесь по полочкам как установить OpenGL на CodeBlocks. Со всеми ссылками для скачивания, ибо я заметил, что с разных сайтов разные файлы. Если как-то поможет сообщение CodeBlocks'а о ошибке то вот оно: ld.exe||cannot find -lopengl32.lib glut32.lib glu32.lib| http://www.cyberforum.ru/cpp-beginners/thread797631.html
Шаблон стека и перегрузка передачи в поток C++
Нужно написать шаблон стека с перегрузкой << и >> для ввода/вывода Внутри класса функция объявлена так: template<class Type> friend ostream& operator<<(ostream& out, const Stack<Type>&); Сама функция определена так: template<class Type> ostream& operator<<(ostream& out, const Stack<Type>& S) { if (S.top == NULL) out<<"Stack is empty\n";
C++ Поиск элементов массива
Подскажите, пожалуйста, как найти два наибольших элемента массива? Добавлено через 28 минут Помогите, пожалуйста!! Очень нужно!
C++ Найти сумму наибольших значений элементов строк матрицы http://www.cyberforum.ru/cpp-beginners/thread797620.html
Дана действительная матрица размера mn. Найти сумму наибольших значений элементов ее строк. должен считать сумму максимальных элементов строк матрицы, но при запуске получается огромное число... #include <stdio.h> #include <conio.h> const int m=4, n=3; void inparr(int a) { int i,j;
C++ Счетчики Подсчет дужек работает раз через раз, сначала может подсчитать верную количество этих символов, а с изменением файла, уже подсчет сбивается. #include<iostream.h> #include<conio.h> #include<stdlib.h> #include<stdio.h> #include<string.h> #include<fstream.h> int main() { char file; подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.03.2013, 02: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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
 
typedef struct
{
    double x1;
    double y1;
    double x2;
    double y2;
 
} COORD;
 
double cX, cY;
 
int CalcCross(COORD *sect1, COORD *sect2)
{
    double a[2], b[2], c[2];
    
    
        a[0] = sect1->y1 - sect2->y2;
        b[0] = sect1->x2 - sect2->x1;
        c[0] = sect1->x1 * sect2->y2 - sect1->y1 * sect1->x2;
        
        a[1] = sect2->y1 - sect2->y2;
        b[1] = sect2->x2 - sect2->x1;
        c[1] = sect2->x1 * sect2->y2 - sect1->y1 * sect1->x2;
            
        cX = -(c[0]*b[1] - b[0]*c[1])/(a[0]*b[1] - b[0]*a[1]);
        cY = -(a[0]*c[1] - c[0]*a[1])/(a[0]*b[1] - b[0]*a[1]);
        
        return (((sect1->x1 <= cX && sect1->x2 >= cX) || (sect1->x2 <= cX && sect1->x1 >= cX)) &&
                ((sect2->x1 <= cX && sect2->x2 >= cX) || (sect2->x2 <= cX && sect2->x1 >= cX)) &&
                ((sect1->y1 <= cY && sect1->y2 >= cY) || (sect1->y2 <= cY && sect1->y1 >= cY)) &&
                ((sect2->y1 <= cY && sect2->y2 >= cY) || (sect2->y2 <= cY && sect2->y1 >= cY)));
}
 
int main()
{
    COORD *sect;
    int N;
    FILE *fin, *fout, *finb;
    
    system ("cls");
    
    fin = fopen("Data.txt","r");
    fscanf(fin, "%d", &N);
    
    sect = (COORD*)malloc(sizeof(COORD)*N);
    if (!sect)
    {
        printf("Not memory");
        return -1;
    }
    
    for (int i = 0; i < N; i++)
        fscanf(fin, "%lf %lf %lf %lf", &sect[i].x1, &sect[i].y1, &sect[i].x2, &sect[i].y2);
        
    fclose(fin);
    
    fout = fopen("Data.bin","wb");
    fwrite(&N, sizeof(int), 1, fout);
    for (int i = 0; i < N; i++)
    {
        fwrite(&sect[i].x1, sizeof(double), 1, fout);
        fwrite(&sect[i].y1, sizeof(double), 1, fout);
        fwrite(&sect[i].x2, sizeof(double), 1, fout);
        fwrite(&sect[i].y2, sizeof(double), 1, fout);
    }
    fclose(fout);
    
    finb = fopen("Data.bin","rb");
    fread (&N, sizeof(int), 1, finb);
    
    for (int i = 0; i < N; i++)
    {
        fread(&sect[i].x1, sizeof(double), 1, fout);
        fread(&sect[i].y1, sizeof(double), 1, fout);
        fread(&sect[i].x2, sizeof(double), 1, fout);
        fread(&sect[i].y2, sizeof(double), 1, fout);
    }
    fclose(finb);
    
    for (int i = 0; i < N - 1; i++)
    {
        for (int j = 1 + i; j < N; j++)
        {
            if (CalcCross(&sect[i], &sect[j])) 
            {
                printf ("Point of intersection %d and %d straight is: X = %lf , Y = %lf\n", i, j, cX, cY);
            }    
        }
    }
    
    free(sect);
    
    return 0; 
}
С CalcCross() не разбирался.
 
Текущее время: 23:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru