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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Glam_Man
6 / 6 / 0
Регистрация: 15.10.2011
Сообщений: 73
27.12.2011, 11:46     Считывание строк из файла в двумерный массив #1
Мне нужно считать строки из файла в двумерный массив. Покажу на примере:
В файле следующие данные:
holydriver manman,devil
hold,your fire
fuckin_god
В масив char **Mas2String должны занестись данные:
MasString[0][0...22]=holydriver manman,devil
MasString[1][0...13]=hold,your fire
MasString[2][0..9]=fuckin_god

Как это реализовать?

Добавлено через 55 минут
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
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string>
#include <locale.h>
using namespace std;
bool ReadFileToMas2(int &m, int &n, char **&MasString)
{
    FILE *f;                    //Файловая переменная
    char c;
    f=fopen("input.txt", "r");  //Открытие файла
    if (f==NULL)
    {
        printf ("Файл не открывается\n");
        return 0;
    }
    while((c=fgetc(f))!=EOF)
    {
        if((c=='\n'))
        m++;
    }
    if(m==1)
    {
        printf("Файл пустой\n");
        return 0;
    }
    rewind(f);  //Переводим индикатор позиции в начало файла
    MasString=new char*[m];
    for (int i=0; i<m; i++)
    {
        while(((c=fgetc(f))!='\n')&&((c=fgetc(f))!=EOF))
        {
            n++;
        }
        MasString[i]=new char[n];
    }
    rewind(f);
    for (int i=0; i<m; i++)
    {
        fscanf(f, "%499s", MasString[i]);
    }
    return 1;
}
void main()
{
    int m=1; 
    int n=0;
    char **MasString=0;
    int cc;
    ReadFileToMas2(m, n, MasString);
    printf("%d %d\n", n, m);
    for (int i=0; i<m; i++)
    {
        printf("%s\n", MasString[i]);
    }
}
Вот, что пока накумекал. Проблема в том, что в 40 строке читает строку до пробела. Если все строки не содержат пробелов, то всё нормально
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2011, 11:46     Считывание строк из файла в двумерный массив
Посмотрите здесь:

считывание строк из файла C++
C++ Считывание строк из файла
C++ Считывание файлов в двумерный массив
Считывание строк из файла C++
Считывание из файла в массив строк C++
C++ Считывание строк из файла
Считывание из файла строк с getline() C++
Считывание из файла в двумерный массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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