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

Построчное чтение и обработка данных из файла. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перекодировщик http://www.cyberforum.ru/cpp-beginners/thread159195.html
Кто может привести код на С программы, которая кодирует/декодирует текст в язык Морзе и наоборот (хоть для пары букв). Помогите плиз, буду очень благодарна :gsad:
C++ Ошибка при завершении работы программы Написал программу, но при завершении выдает ошибку. Помогите понять с чем это связанно? http://www.cyberforum.ru/cpp-beginners/thread159145.html
Начинаю изучать Cи, и C++ C++
Начинаю изучать Cи, и C++...В аське один знакомый(программист) говорит, что я не смогу эти языки понять без репетитора. Мне 16 лет. P.S. гОРЮ ЖЕЛАНИЕМ:)
Ошибка в файле ресурсов C++
Имеем следующий файл ресурсов: #define IDD_DLG1 1000 #define IDC_BTN1 1001 #define IDC_BTN2 1002 #define IDC_EDT1 1003 #define IDC_EDT2 1004 #define IDC_BTN3 1005 IDD_DLG1 DIALOGEX 10,10,150,100
C++ справочник на STL http://www.cyberforum.ru/cpp-beginners/thread159121.html
Всем привет! У меня задание написать телефонный справочник на STL почти всё сделала только нужно чтоб поиск осуществлялся по формату *часть слова* или часть слова?часть слова Помогите, пожалуйста!!!!!!!! (сочно надо) вот код
C++ Учебник для начинающих Здравствуйте, уважаемые программисты. Этим летом я поступил в университет нефти и газа на спец-ть Прикладная математика. Узнал, что первые полгода у нас будет С. Остальное время С++. С этими языками я совершенно не знаком. В школе учил Паскаль и Бейсик. Что вы можете посоветовать из литературы по языку С? Начианать изучения сразу с языка С? Или сразу за С++? Хотелось бы за оставшееся летом... подробнее

Показать сообщение отдельно
Haze23
0 / 0 / 0
Регистрация: 13.08.2010
Сообщений: 4

Построчное чтение и обработка данных из файла. - C++

13.08.2010, 21:53. Просмотров 5845. Ответов 6
Метки (Все метки)

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

Задача из учебника Скиена "Олимпиадные задачи по программированию".

Название 3n+1.

Вот её описание:
"Рассмотрим следующий алгоритм генерации последовательности чисел. Начнем с целого числа n. Если n четно, то поделим на 2. Если n нечетно, то умножим на 3 и добавим 1. Будем повторять этот процесс с новыми полученным n, пока n не станет равным 1. Например, для n = 22 будет сгенерирована след. посл. чисел:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
Для данного n длиной цикла n будем называть число сгенерированных чисел до и включая 1. В приемере, приведенном выше, длина цикла 22 равна 16. Для двух заданных чисел i и j вы должны определить максимальную длину цикла для всех чисел между i и j, включая обе конечные точки.

Входные данные:
Входные данные будут состоять из серии пар целых чисел i и j, одна пара чисел в строке. Все целые числа будут меньше 1000000 и больше 0.

Выходные данные:
Для каждой пары чисел i и j выведите i, j в том порядке, в каком они были введены, и после этого выведите максимальную длину цикла для всех целых чисел между i и j, включая сами i и j. Эти три числа должны быть разделены одним пробелом, все три числа в одной строке, и для каждой строки входных данных должна быть одна строка выходных данных."

Пример входных данных:
1 10
100 200
201 210
900 1000

Пример выходных данных:
1 10 20
100 200 125
201 210 89
900 1000 174

Вот, что мне удалось написать.

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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int w;
void funcN(int i,int j)
{
    cout<<i<<' '<<j<<' ';
    int l;
    int n;
    int d;
    int t = 0;
        for(l=i;l<=j;l++)
    {
        n=l;
        d=1;
        while(n!=1)
        {
            if(n%2==0)
            {
                n=n/2;
            }
            else
            {
                n=(3*n) + 1;
            }
            d++;
        }
        if(d > t)
        {
            t=d;
            w=t;
        }
    }
    cout<<t<<' ';
};
 
int main()
{
    int i,j;
    FILE *fin, *fout;
 
    fin=fopen("input.txt","r");
    if(fin == NULL || (fout = fopen("output.txt", "w")) == NULL) {
        printf("Error.\n");
        return 1;
    }
    
    fscanf(fin, "%i %i",&i, &j);
    funcN(i,j);
    fprintf(fout, "%i %i %i",i, j, w);
    
    fclose(fin);
    fclose(fout);
 
    _getch();
 
    return 1;
}
Работает программа правильно, но считывает только первую строку из файла. Как сделать так, чтобы она построчно считывала и обрабатывала строки из файла "input.txt", а затем записывала их в output.txt?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru