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

Поиск самой длинной строки в файле - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти столбец матрицы с наибольшим количеством нулей http://www.cyberforum.ru/cpp-beginners/thread323526.html
Здравствуйте, нужна срочно помощь с двумя программами, а то я в программировании - ноль=/ Первую программу нужно сделать со статическими массивами, а вторую с динамическими. 1. Заполнить двумерный массив размерностью случайными дробными числами и посчитать сумму элементов в каждой строке. Все вывести на экран. 2. Считать из файла двумерный массив, выйти его на экран, найти столбец с...
C++ списки с++ Здрасте) решила обратиться к вам за помощью, т.к. самой решить задачу мне не под силу. Если кто-нибудь сможет помочь, буду признательна =) понимаю только с++,с си я не дружу) Задание. Создать класс Decimal для работы со знаковыми целыми десятичными числами, используя массив элементов типа usigned char, каждый элемент которого является десятичной цифрой. Младшая цифра имеет меньший индекс... http://www.cyberforum.ru/cpp-beginners/thread323524.html
C++ Подключение и работа в Glut или другие способы простенькой графики
Не могу никак использовать glut и откомпилить найденный в интернете код #include <D:\cpp\GL\glut.h> void Reshape(int width, int height) { glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(-1, 1, -1, 1); glMatrixMode(GL_MODELVIEW);
Структуру не пойму C++
Дана информация о студентах.(Фамилия, номер зачетки, оценка экзамена). Вывести список студентов, которые получили 4 и 5. можете показать,как это со структурой сделать?
C++ Незнаю как поставить условие http://www.cyberforum.ru/cpp-beginners/thread323516.html
Дан многострочный текст (char text). Определите, есть ли в данном тексте указанное слово и заключите его в квадратные скобки. Слово – это непрерывная последовательность букв и/или цифр. Разделителями слов могут быть любые другие символы. Реализовать и использовать функцию, которая заключает слово в квадратные скобки: void markWords(char str, const...
C++ Си++ Лабораторка Удалить из s1, ... , sn все слова с нечетными порядковыми номерами и перевернуть все слова с четными номерами. Например, если n=21 и данная последовательность символов представляет собой последовательность во_что_бы_то_ни_стало, то должна получиться последовательность отч_от_олатс. и если не сложно блок схемку начеркать. ну тут ясно, что надо написать код в Си++ с использованием массивов и... подробнее

Показать сообщение отдельно
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
24.06.2011, 12:17     Поиск самой длинной строки в файле
вот держи другой вариант.

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
#include <stdio.h>
#include <memory.h>
 
 
 
 
 
int  max_line(const char* str) {
        int len = 0, tmp = 0;
        do {
            if( *str == '\n' ||  *str == '\0' ) {
                                      if(len >= tmp) 
                    tmp = len;
                len = 0;
            } else 
                len++;
        } while( *str++ != '\0' );
       return tmp;
}
 
 
 
 
void  line_print(const char*  str, int _max) {
    int  len   = 0;
    do {
        if( *str == '\n' || *str == '\0' ) {
            if(len == _max) {
                int sz  = len;
                str    -= len;
                while(sz--) 
                    printf("%c", *str++);
                       printf("%c", '\n' );
            }
            len = 0;
        } else
                   len++;
    } while( *str++ != '\0' );
}
 
 
 
 
 
 void  main(void){
 
 
           
    FILE*  fp  = fopen("f.txt", "r" );
    fseek(fp, 0L, SEEK_END);
    long  size = ftell(fp);
    fseek(fp, 0L, SEEK_SET);
 
    char*  buffer = new char[size];
    memset(buffer, '\0', (size_t) size);
    if(! buffer)
           exit(1);
    fread(buffer, size, 1u, fp);
    fclose(fp);
 
         
            // узнаём самую длиную строку
            int  b_line = max_line(buffer);
     line_print(buffer, b_line);  // выводим самые длинные строки
 
 
             // запись в файл реверсированых строк
     fp                   = fopen("g.txt", "w");
     const char* str = buffer;
     int len             = 0;
 
     do {
         if(*str == '\n' || *str == '\0' ) {
            int sz = len;
            while(sz--) {
                --str;
                fputc( *str, fp);
            }
                          fputc( '\n' , fp);
                   str += len;
                   len  = 0;
         } else
                  len++;
     } while(*str++ != '\0' );
    
     fflush(fp);
     fclose(fp);
 
 
    delete[] buffer;
    buffer = NULL;
 
       getchar();
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru