Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
45 / 45 / 5
Регистрация: 28.07.2009
Сообщений: 144
1

Чтение файла

02.05.2010, 15:59. Просмотров 689. Ответов 4
Метки нет (Все метки)

Знаю, что очень ламерский вопрос... Вот только нихрена не получается! Я и так и сяк вертел...

Вобщем, есть файл .txt с записями вида
целое_число строка_неопределенной_длины\n

так вот, мне нужно считать все эти записи из файла и занести в массив структур Data: int key, char *record, int recordsize;

проблема в том, что когда я читаю вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int tmp_key [200];
char trash;
char tmp_record [200][256];
ifstream base("database.txt");
int count=0;
while (!base.eof())
{
    base >> tmp_key[count];
    base >> trash;
    base.getline(tmp_record[count], 256,'\n');
    base >> trash;
    count++;
}
base.close();
нифига не получается!

Добавлено через 4 минуты
Могут ли быть какие-то проблемы в кодировках?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2010, 15:59
Ответы с готовыми решениями:

Переделать в коде чтение из файла в чтение с клавиатуры
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен за помощь! //файл...

Чтение из файла. Повторное чтение файла
Добрый день. Необходимо реализовать в программе функцию повторного чтения данных из файла, в случае...

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip> #include <cstdlib>...

Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется
Формат файла состоит из 3 структур и одной переменной. Подробное описание формата во вложении,...

4
2 / 2 / 0
Регистрация: 19.02.2010
Сообщений: 96
02.05.2010, 16:12 2
Файл должен быть в кодировке DOS'а. Попобуй вывести все содержимое файла на экран, если каракули выйдут то используй какой нит текстовый редактор типа DosPad'а
0
45 / 45 / 5
Регистрация: 28.07.2009
Сообщений: 144
02.05.2010, 18:24  [ТС] 3
Действительно, с 866 кодировкой он стал нормально читать. Такой вопрос: а как мне считать символьную строку вплоть до символа \n? Или если использовать цикл и считывать по символу, то какая функция возвращает следующий символ из потока, при этом не переходя за него (т.е. он будет считан после, а не пропущен)?

Добавлено через 51 минуту
подскажите, плиз.
0
Эксперт С++
3936 / 1801 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
03.05.2010, 15:46 4
JamesBlack, а чем вас не устраивает getline ?
Если интересно посимвольное чтение файла, то перемещаться по файлу поможет seekg.
Почитать о ней можно здесь: http://www.cplusplus.com/refer... eam/seekg/
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10857 / 6733 / 1617
Регистрация: 25.07.2009
Сообщений: 12,472
03.05.2010, 16:46 5
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
#include <iostream>
#include <string>
#include <utility>
#include <vector>
#include <fstream>
#include <cstdlib>
 
int main(){
    std::vector<std::pair<int, std::string> > vec;
    int num, pos;
    std::string buf, s;
 
    std::ifstream ifs("numbers_strings.txt");
    if ( !ifs.is_open() ){
        std::cerr << "Can't open input file!" << std::endl;
        return 1;
    }
    while ( std::getline(ifs, buf) ){
        num = std::atoi(buf.c_str());
        s = ( ( pos = buf.find_first_not_of("0123456789 \t") ) == std::string::npos ) ? "" : buf.substr(pos);
        vec.push_back(std::pair<int, std::string>(num, s));
    }
    ifs.close();
 
    for ( std::vector<std::pair<int, std::string> >::const_iterator i = vec.begin(); i != vec.end(); ++i )
        std::cout << i->first << '\t' << i->second <<std::endl;
 
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2010, 16:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла?
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них запизаем, например в...

Чтение файла с несколькими знаками конца файла
В файле несколько раз встречается ноль, и ни как не получается прочитать его полностью. Как можно...

Чтение файла с n строки и до конца файла
как сделать так чтобы писало не с начала файла а например с середины и до конца? fstream...

Чтение текстового файла специфического файла
Добрый день! Есть один текстовый файл определенного формата. Заголовок по столбцам такой: год...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.