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

Осуществить вывод строк из файла, используя массив указателей на эти строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Builder Как в функцию быстрой сортировки передать указатель на StringGrid? http://www.cyberforum.ru/cpp-beginners/thread151201.html
Доброго времени суток. Возник вопрос, как в функцию быстрой сортировки (метод Хоара), передать указатель на StringGrid. Хочу сделать сортировку в столбце, а вот как передать указатель, ни как понять не могу. void __fastcall TForm1::Button1Click(TObject *Sender) { QuickSort( , 0, StringGrid1->RowCount); } //--------------------------------------------------------------------------- int...
C++ Инкремент. Где ошибка Привет, помогите плз с кодом, некорректный результат инкремента..( #include "stdafx.h" #include <iostream> using namespace std; class SimpleCircle { public: //конструкторы http://www.cyberforum.ru/cpp-beginners/thread151195.html
C++ Добавить класс в программу
С классами совсем не знаком, поэтому обращаюсь к Вам) Требуется присутствие класса в коде. вот сам код: #include<conio.h> #include<stdio.h> #include<stdio.h>
C++ Си, использование вложенных файлов *.c
Всем доброго времени дня! Вопрос: Пишу программу на C под Linux. есть файл main.c, в котором у меня располагается основное тело программы, функции итд... Но считаю это избыточным, хочу функции вывести в другой сишный файл, к примеру utils.c... Как использовать функции в utils.c вызывая их из main.c? В main.c делал #include <utils.c>, но не помогло...Прописывал в utils.c вначале все...
C++ Как именно округляются float и double? http://www.cyberforum.ru/cpp-beginners/thread151139.html
Вот имеется double l, функция sqrt из cmath и следующие формулы: sqrt(2-2*sqrt(1-l*l/4)) sqrt(l*l/4+1-sqrt(1-l*l/4)-sqrt(1-l*l/4)+1-l*l/4) sqrt(l*l/4+(1-sqrt(1-l*l/4))*(1-sqrt(1-l*l/4))) Если l длина стороны вписанного в круг с радиусом 1 правильного многоугольника с 2^n сторонами, то формула должна вычислить длину стороны вписанного в тот же круг правильного многоугольника с 2^{n+1}...
C++ Компилятор C не C++ Где можно скачать один крмпилятор C (без C++!!!) можно можно в IDE главное чтобы весил как можно меньше в google искал он мне выдаёт копиляторы C/C++ и весят они до... короче много!!! Заранее всем спасибо!!! подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9382 / 5432 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
03.07.2010, 00:19     Осуществить вывод строк из файла, используя массив указателей на эти строки
Цитата Сообщение от KBAC Посмотреть сообщение
задача то как оказалась не проста
Да чего там непростого?! Вот на чистом С решение и с массивом, и с указателями
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define SKIP_CHAR ','
 
int main(void){
    char buf[BUFSIZ], * p;
    FILE * f;
    long cnt, i;
    char ** array;
    
    printf("File name: ");
    if ( ! fgets(buf, BUFSIZ, stdin) ){
        fprintf(stderr, "Can't get file name.\n");
        exit(EXIT_FAILURE);
    }
    if ( p = strrchr(buf, '\n') )
        *p = 0;
    if ( ! *buf ){
        fprintf(stderr, "Empty string can't be a file name.\n");
        exit(EXIT_FAILURE);
    }
    
    if ( ( f = fopen(buf, "r") ) == NULL ){
        fprintf(stderr, "Can't open input file.\n");
        exit(EXIT_FAILURE);
    }
    
    array = NULL;
    cnt = 0;
    while ( fgets(buf, BUFSIZ, f) ){
        if ( ( array = (char**)realloc(array, sizeof(char*) * (cnt + 1)) ) == NULL ){
            fprintf(stderr, "Memory error.\n");
            exit(EXIT_FAILURE);
        }
        if ( ( array[cnt++] = strdup(buf) ) == NULL ){
            fprintf(stderr, "Memory error.\n");
            exit(EXIT_FAILURE);
        }
    }
    if ( ferror(f) ){
        fprintf(stderr, "Can't read from input file.\n");
        exit(EXIT_FAILURE);
    }
    fclose(f);
    
    if ( ! array ){
        fprintf(stderr, "File is empty or another error.\n");
        exit(EXIT_FAILURE);
    }
    
    printf("\n***All rows in file:\n");
    for ( i = 0; i < cnt; ++i )
        printf("%03d:\t%s", i + 1, array[i]);
    
    printf("\n***Rows without '%c' character:\n", SKIP_CHAR);
    for ( i = 0; i < cnt; ++i )
        if ( ! strchr(array[i], SKIP_CHAR) )
            printf("%03d:\t%s", i + 1, array[i]);
    printf("\n");
    
    for ( i = 0; i < cnt; ++i )
        free(array[i]);
    free(array);
    
    exit(EXIT_SUCCESS);
}
На С++ руки не берутся такое делать - там STL и прочие благА цивилизации...
 
Текущее время: 09:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru