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

Нужна помощь. Копирование строки файла в элемент массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вопрос по DialogBox'ам http://www.cyberforum.ru/cpp-beginners/thread13958.html
Помогите сделать простенькую программку. Есть окошко1, в нем кнопка. Жмем кнопку, наше окошко исчезает и появляется окошко2.
C++ Чтение заданной строки файла Добрый всем день. Проблема простая: у меня есть файл, в котором есть несколько строк, не всмысле char или string, а в смысле строк - строчек, там 10-20 штук... Подскажите функцию С++ обращения к i-ой строке, на подобии обращения к i-му элементу массива. Функция типа SEEK в ПАСКАЛЕ. Очень признателен P.S. fseek и прочие функции !!! С !!! не предлагать http://www.cyberforum.ru/cpp-beginners/thread13946.html
C++ Две функции на С++
Помагите пожалуймста решить функции, при подставлении "р" решались "А" и "А2" :scratch::-[ Буду ооочень благодарен :)
Массивы,инициализация(qbasic'овские read,data) C++
Недавно начал изучать С++. Маленький совет: книги не покупай, а скачивай через интернет.(если есть возможность конечно) Некоторые книжки не сразу понятны, и ты бысторо сможешь её поменять. Конечно в таком варианте есть много минусов, но главный плюс это: Экономичность. Вообще на сайт зашел что бы задать очередной вопрос: Напомню что перехожу на С++ с QBASICа. Скажите пожалуйста есть ли...
C++ Помогите чайнику с инкрементом... http://www.cyberforum.ru/cpp-beginners/thread13877.html
Здравствуйте! Понимаю, конечно, что вопрос наверное дурацкий... но я только начал знакомство с С++, а этот вопрос не дает покоя... int i=0; cout<<"i = "<<i<<", (i++)= "<<i++<<endl; cout<<"i = "<<i; Как мне казалось, поскольку инкремент постфиксный, то i должно увеличится только ко второй строке, однако результат выполнения таков: i = 1, (i++)= 0 i = 1 Наверное я чего-то не знаю.......
C++ Динамический массив символов Что я делаю не так? вот код: header.h #include<iostream> #include<string.h> class m{public: m();~m(); void set(char* _str); private:char *str; подробнее

Показать сообщение отдельно
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8505 / 2172 / 61
Регистрация: 07.03.2007
Сообщений: 10,844
Завершенные тесты: 1
15.10.2008, 15:30     Нужна помощь. Копирование строки файла в элемент массива
Vasiliusis, немного подкорректировал твой код, заработало
необходимо:
Код
 
    void tokenize(string array[])
    {
        char buffer[100];
        char *surnamePtr;
        unsigned i = 0;
 
        ifstream readFromFile;
        readFromFile.open("file.txt");
        while (i != 7)
        {
            readFromFile.getline(buffer, 99);
            surnamePtr = strtok(buffer, " ");
            array[i] = surnamePtr;
            cout<<array[i]<<endl;
            i++;
        }
        readFromFile.close();
    }
};
 
int main()
{
    string* surnames = new string[20];
    for (int j = 0; j < 20; j++){
        surnames[j] = "";
    }
    Record myRecord;
    myRecord.clearFile();
    myRecord.setElements("Caine ","5/5/88 ","Peace Street, 12");
    myRecord.setElements("Grissom", "8/17/56", "Las Vegas, NV");
    myRecord.setElements("Griss", "9/1/65", "San Antonio, TX");
    myRecord.setElements("Delko ","1/1/90 ","Garlem Street, 72");
    myRecord.setElements("Brown ","10/12/56 ","Linkoln Street, 89");
    myRecord.setElements("Albert ","12/8/91 ","Wall Street, 78");
    myRecord.setElements("Brass ","15/6/78 ","Main Street, 7");
    myRecord.tokenize(surnames);
    cout<<endl<<endl<<endl;
 
    for (int i = 0; i < 7; i++)
    {
        cout<<surnames[i]<<endl;
    }
    return 0;
}
или
Код
 
    void tokenize(char* array[])
    {
        char buffer[100];
        char *surnamePtr;
        unsigned i = 0;
 
        ifstream readFromFile;
        readFromFile.open("file.txt");
        while (i != 7)
        {
            readFromFile.getline(buffer, 99);
            surnamePtr = strtok(buffer, " ");
            strcpy(array[i],surnamePtr);
            cout<<array[i]<<endl;
            i++;
        }
 
 
 

        readFromFile.close();
    }
};
 
int main()
{
    char* surnames[20];
    for (int j = 0; j < 20; j++){
        surnames[j] = new char[20];
        memset(surnames[j], ' ', 20);
    }
    Record myRecord;
    myRecord.clearFile();
    myRecord.setElements("Caine ","5/5/88 ","Peace Street, 12");
    myRecord.setElements("Grissom", "8/17/56", "Las Vegas, NV");
    myRecord.setElements("Griss", "9/1/65", "San Antonio, TX");
    myRecord.setElements("Delko ","1/1/90 ","Garlem Street, 72");
    myRecord.setElements("Brown ","10/12/56 ","Linkoln Street, 89");
    myRecord.setElements("Albert ","12/8/91 ","Wall Street, 78");
    myRecord.setElements("Brass ","15/6/78 ","Main Street, 7");
    myRecord.tokenize(surnames);
    cout<<endl<<endl<<endl;
 
    for (int i = 0; i < 7; i++)
    {
        cout<<surnames[i]<<endl;
    }
    return 0;
}

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