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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Калькулятор и стек http://www.cyberforum.ru/cpp-beginners/thread980842.html
Решил опробовать себя в С++. В Visual Studio C++ решил сделать мини калькулятор, который выполняет подсчет через стек. Причем парсит скобки дабы в них подсчитать в начале и только потом подсчитать...
C++ Сортировка двоичным включением У меня задание продемонстрировать в виде таблицы алгоритм роботы сортировки с двоичным включением на массиве 15,4,10,8,6,9,16,1.Написал программу,н оона раюотает неправильно.В чём ошибка? #include... http://www.cyberforum.ru/cpp-beginners/thread980829.html
параллельное программирование C++
Подскажите, пожалуйста! Возвожу положительные числа в степень, а выдается отрицательный результат. Как быть? #include <iostream> #include <stdio.h> #include <stdlib.h> #include <mpi.h> ...
C++ Рандомизация ответов
Возникли некоторые проблемы, не знаю как сделать рандом ответов в тестирование, да так чтобы не потерять правильный ответ. Буду очень рад примерам.
C++ Что здесь не так? http://www.cyberforum.ru/cpp-beginners/thread980809.html
Только начал изучать С++. Решил написать программу которая гласит что число больше или меньше ста и парное оно или непарное. За код строго не судите(только учусь)! Компилятор-MS Visual C++ Express...
C++ Не открыть файл! 2 месяца назад все работало... Сейчас при отладке доходит до открытия файла на чтение и вылетает... Права доступа открыл какие только есть... С путями, кажется(?), все нормально... Дайте намек,... подробнее

Показать сообщение отдельно
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,998
19.10.2013, 13:29  [ТС]
фуф, разобрался вроде...выкладываю, мб кому потом пригодится
подправил стиль оформления немного

Не по теме:

кол-во комментов было исключительно для людей, которым это мб пригодится в будущем


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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
const int n=200;//размер буфера
int c; // счетчик для кол-ва символов в строке
int i=0; // счетчик кол-ва строк
 
ifstream file;
file.open("text.txt");
    while(!file.eof()) // цикл для чтения из файла до его конца, считаем кол-во строк
    {
    char* a=new char[n]; // буфер для считывания в него файла
    file.getline(a,n);
    delete []a;
    i++;
    }
file.clear();
file.seekg(0);
char** b=new char*[i];  // массив для хранения массивов со строками
i=0;
    while(!file.eof())
    {
    c=0;                   // счётчик для подсчёта символов
    char* a=new char[n];  // буфер
    file.getline(a,n);
        while (a[c]!='\0')  //подсчитываем символы до конца строки
        {
        c++;
        }
    cout<<"\nc="<<c<<"  ";
    char* d=new char[c+1];  //выделяем память под массив хранящий символы
        for (int j=0;j<=c;j++)   // в цикле посимвольно записываем в наш массив буфер а[]
        {
        d[j]=a[j];
        cout<<d[j];
        }
    d[c+1]='\0';
    b[i]=d;       // присваиваем главному массиву адреса массивов с символами
    cout<<"i="<<i<<endl;
    delete []a;
    i++;
    }
cout<<"\n"<<endl;
 
    for (int j=0;j<i;j++) // выводим главный массив со стркоами
    {
//всё решилось само собой, пол часа поломал голову, обращался к
//несуществующей области памяти в циклац for, отсюда была куча ошибок и прочего
        *(b[j])=' ';
        for (int i=0;;i++)
        {
            if ((*(b[j]+i)==' ')&&(*(b[j]+i-1)!=' '))
                *(b[j]+i+1)=' ';
            if (*(b[j]+i)=='\0')
            break;
        }
    }
cout<<endl;
    for (int j=0;j<i;j++)
    cout<<b[j]<<endl;
delete [] b;
file.close();
return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru