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

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

Восстановить пароль Регистрация
 
 
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
18.10.2013, 14:18     размер считываемой строки из файла #1
открываю файл, пытаюсь считать строку в массив, массив через char* a=new char[n], есть ли функция, которая мне вернёт размер строки из файла? Или придётся 2 раза считывать файл, 1ый раз в какой-нибудь буфер, считая символы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n;
ifstream file;
file.open("text.txt");
n = //??
char* strArray=new char[n];
 
//дальше мой кодъ!
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2013, 13:29     размер считываемой строки из файла
Еще ссылки по теме:

Размер строки C++
C++ Получить третий файл, содержащий чётные строки первого файла и нечётные строки второго файла
Размер файла C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
19.10.2013, 13:29  [ТС]     размер считываемой строки из файла #21
фуф, разобрался вроде...выкладываю, мб кому потом пригодится
подправил стиль оформления немного

Не по теме:

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


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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
19.10.2013, 13:29     размер считываемой строки из файла
Ответ Создать тему
Опции темы

Текущее время: 03:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru