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

Чтение из файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки: Определить, сколько в тексте слов, в состав которых входит слог сок http://www.cyberforum.ru/cpp-beginners/thread565308.html
Доброго времени суток. Вот ниже собственно задания. Прошу оставлять комментарии к строкам, ибо страдает объяснение у меня( 1.Определить, сколько в тексте слов, в состав которых входит слог сок В это же задание входит еще задачка 2. Дан текст. Напечатать те слова, которые удовлетворяют следующему свойству: буквы слова упорядочены по алфавиту. Заранее спасибо.
C++ написать программу на Вижуал студио с использованием форм разработка программы тестирования http://www.cyberforum.ru/cpp-beginners/thread565307.html
C++ Файл: Разбить последовательность на две части и вывести на экран сначала вторую, затем первую
задание: Некоторая упорядоченная последовательность целых чисел записана в файл. Разбить последовательность на две части и вывести на экран сначала вторую, затем первую. Обе части выводить в обратном порядке.
что быстрее работать будет?? C++
Здравствуйте) проблема такая. есть функция, возвращаемое значение которой расчитывается по разным формулам, выбор которых зависит от входного параметра. так вот вопрос. есть ли вообще разница между double f (double x, int q) { switch(q) { case 0: return ...; case 1: return ...; case 2: return ...;
C++ В последовательности чисел выдать на печать http://www.cyberforum.ru/cpp-beginners/thread565290.html
В последовательности чисел выдать на печать TRUE, если значение максимального числа больше числа 10
C++ Странная проблема с вычислением В конце программы, в цикле, в мейне: sX2 и sY2 становятся равными sX1 и sY1, из за того, что sR равно 0, а оно равно 0 из-за sW и sH. Почему они (sW, sH) равны 0 не понятно. Конечно, они равны 0, если sX2 и sY2 равно sX1 и sY1, но я только что написал, почему из моих соображений этого не может быть. Проблема: sW == 0 и sH == 0. Если хотите вникнуть в программу: Суть программы: есть линия,... подробнее

Показать сообщение отдельно
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186

Чтение из файла - C++

04.05.2012, 12:41. Просмотров 673. Ответов 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
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
#include <iostream>
#include <fstream>
 
using namespace std;
//такая струтура для хранения Имени студента, группы (например ММ-263 или ММз-263)
struct Student
{
    char name[20];
    char gryppa[7];
    float srbal;
};
 
int main()
{
    //массив структур на 3 записи
    Student *p = new Student [3]; 
       
    int cnt=0, i=0; //cnt - общее количество студентов, i - переменная
    
    ifstream fin; // создаем поток для ввода из файла
    fin.open("dat.txt"); // говорим, что есть такой файл
 
    if(!fin.is_open()) // но нужно проверить
    {
        cout << "Error";// ну и тут наверное завершить приложение, возвратив единичку
    } else cout << "File is opened"; 
 
    //а здесь я уже не понимаю
    //значит в следующем цикле необходимо считывать из файла данные построчно
    //формат хранения данных, например
    //Петров
    //XX-123
    //4.26
    while(i<3 && ???) // пока не заполним весь массив (массив у нас на 3 элемента) и...
    //а если файл пустой, то это надо как-то проверить
    //а если не пустой, но подошли к концу файла
    {
        //считывать данные предполагается таким образом
        fin.getline(p[i].name, 20);
        fin.getline(p[i].gryppa, 7);
        fin >> p[i].srbal;
        //дальше готовимся считывать следующую запись
        i++; //ну и как-то увеличиваем число студентов [I]cnt[/I] на единицу
        //а тут, наверное, необходимо сново проверить, а не конец ли файла
    }
    //вывод того, что считали
    for(int i=0; i<cnt; i++)
    {
        cout << "Im9: ";
        cout << p[i].name << endl;
        cout << "gryppa: ";
        cout << p[i].gryppa << endl;
        cout << p[i].srbal << endl << endl;
    }
 
}
Добавлено через 2 минуты
не могу разобраться со считыванием их файла разобраться. В цикле while надо бы как-то проверить, а не пустой ли файл, и не подошли ли мы к концу фала. Ведь может быть такое, что массив на 100 элементов, а в файле только 2 записи

Добавлено через 15 минут
В общем с таким кодом
и с фалом, в которм хранится такое сожержимое:
Petrov
BB-123
3
Ivanov
XX-123
5
Почему-то считает, что у меня три записи в файле. Соответственно вывод не правильный
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
struct Student
{
    char name[20];
    char gryppa[30];
    int srbal;
} ;
 
int main()
{
    Student *p = new Student [3];
 
    int cnt=0, i=0; //общее количество студентов
 
    ifstream fin;
    fin.open("dat.txt");
    if(!fin.is_open())
    {
        cout << "Error";
    } else cout << "File is opened";
 
    while(i<3 && cin.peek()!= EOF)//а если файл пустой//если следующий символ не символ новой строки увеличить cnt
    {
        fin.getline(p[i].name, 20);
        fin.getline(p[i].gryppa, 30);
        (fin >> p[i].srbal).ignore(200, '\n');
        i++;        
        cnt++;
    }
    cout << cnt;
    for(int i=0; i<cnt; i++)
    {
        cout << "Im9: ";
        cout << p[i].name << endl;
        cout << "Nazvanie: ";
        cout << p[i].gryppa << endl;
        cout << "Sredniu ball";
        cout << p[i].srbal << endl << endl;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru