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

Не происходит считывание (getline) из файла. Исправить код - C++

Восстановить пароль Регистрация
 
zorker
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
05.01.2014, 22:40     Не происходит считывание (getline) из файла. Исправить код #1
По какой-то непонятное причине не хочет читать getline' ом в функции GetStr. При чтении получаем пустую строку. Причем на первом getline из файла paths, все отлично считывается. В чем пробема?

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
string GetStr(ifstream &s, int l)
 {
    std::string str;
    int i = 0;
    s.seekg(0, ios::beg);
    while (i <= l)
    {
    getline(s, str);
    i++;
    }
    return str;
 }
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    int i = 0;
    std::string line, acc;
    std::ifstream paths("Файл");
    std::ifstream Ac("Файл");
    std::ofstream acs;
    while (!paths.eof())
    {
        getline(paths, line);
        acs.open(const_cast<char *>(line.c_str()));
        acc = GetStr(Ac, i);
        acs.write(acc.c_str(), acc.length());
        i++;
    }
    paths.close();
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 22:40     Не происходит считывание (getline) из файла. Исправить код
Посмотрите здесь:

считывание строки cin.getline() C++
C++ Исправить код (считать данные из файла)
C++ Считывание предложений из текстового файла(готовый код)
C++ Нужно исправить ошибку в строке с getline
Считывание из файла строк с getline() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.01.2014, 01:38     Не происходит считывание (getline) из файла. Исправить код #2
Два потока, связанные с одним файлом? И в чём задача?

Добавлено через 1 час 4 минуты
C++
1
acs.write(acc.c_str(), acc.length());
В бинарном виде string записываете? Интересно, как вы их потом читать собираетесь?
zorker
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
06.01.2014, 21:18  [ТС]     Не происходит считывание (getline) из файла. Исправить код #3
Цитата Сообщение от alsav22 Посмотреть сообщение
Два потока, связанные с одним файлом? И в чём задача?

Добавлено через 1 час 4 минуты
C++
1
acs.write(acc.c_str(), acc.length());
В бинарном виде string записываете? Интересно, как вы их потом читать собираетесь?
Файлы разные, просто написал так. Как предложите записывать, если так нельзя?
Задача: открывать по очереди файлы, находящиеся в папках, прописанных в paths, и записывать в каждый по строчке из файла Ac
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.01.2014, 21:34     Не происходит считывание (getline) из файла. Исправить код #4
Цитата Сообщение от zorker Посмотреть сообщение
и записывать в каждый по строчке из файла Ac
Если только по одной строчке будет в каждом файле, то можно и так, хотя можно и просто строчками записывать:
C++
1
acs << acc << endl;
Добавлено через 1 минуту
Цитата Сообщение от zorker Посмотреть сообщение
Файлы разные, просто написал так.
А как тогда с этим разбираться?
Цитата Сообщение от zorker Посмотреть сообщение
По какой-то непонятное причине не хочет читать getline' ом в функции GetStr. При чтении получаем пустую строку. Причем на первом getline из файла paths, все отлично считывается. В чем пробема?
Ясновидящих тут нет.
Yandex
Объявления
06.01.2014, 21:34     Не происходит считывание (getline) из файла. Исправить код
Ответ Создать тему
Опции темы

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