Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
1

Переход на заданную строку

24.07.2012, 20:14. Просмотров 2064. Ответов 11
Метки нет (Все метки)

вот хочу считать последнюю строку из файла такием раком
C++
1
2
3
4
5
6
7
8
9
10
11
    fstream str("base.txt",ios_base::in|ios_base::out);
 
    str.seekp(0, ios::end);   
    
    char* words[10];
    str >> words[0];
    str >> words[1];
    str >> words[2];
    cout << words[0];
    cout << words[1];
    cout << words[2];
но не судьба не получается (наверно потому что курсор в самом конце)
так вот как мне считать последнюю строку?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2012, 20:14
Ответы с готовыми решениями:

В матрице поменять местами заданную строку и строку содержащую минимальный элемент среди неотрицательных элементов
Задание: В заданной матрице поменять местами: 1) строку с указанным номером и строку, содержащую...

Как заменить переход на новую строку на пробел, а пустую строку на переход на новую строку?
Подскажите как из одного текстового файла, в котором в каждом ряде содержится не больше одного...

Найдите заданную строку и заданную колонку двумерного массива А(4, 6). Напечатайте их
Найдите заданную строку и заданную колонку двумерного массива А(4, 6). Напечатайте их....

Скрипт запрещает переход на заданную страницу
Всем привет! Тренируюсь на сессиях по книжке. И вот в чем вопрос. Там есть скрипт авторизации с...

11
Каратель
Эксперт С++
6593 / 4014 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
24.07.2012, 20:27 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
    std::ifstream file("input.txt");    
    std::string str;
 
    while (std::getline(file, str))
        ;
 
    std::cout << str;
 
}
1
Эксперт С++
8291 / 6046 / 601
Регистрация: 10.12.2010
Сообщений: 28,126
Записей в блоге: 25
24.07.2012, 20:27 3
Цитата Сообщение от НубаС++ Посмотреть сообщение
так вот как мне считать последнюю строку?
Никак, нужно для начала прочитать весь файл полностью.
1
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
24.07.2012, 20:58  [ТС] 4
Вашим способом не получается почему то, тоесть получается, он выводит на экран последнюю строку НО почему то затем уже программа начинает косячить, те не записывает в файл
0
Эксперт С++
8291 / 6046 / 601
Регистрация: 10.12.2010
Сообщений: 28,126
Записей в блоге: 25
24.07.2012, 21:06 5
Так ты разберись сначала что тебе надо записывать или читать файл?
0
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
24.07.2012, 21:17  [ТС] 6
и то и то у меня ios_base::in|ios_base::out
0
Эксперт С++
8291 / 6046 / 601
Регистрация: 10.12.2010
Сообщений: 28,126
Записей в блоге: 25
24.07.2012, 21:30 7
И то и то не канает.

Т.е канает но не без костылей в плане перемещния курсоров.

Так что луше делать все операции в памяти, а потом перезаписывать файл целиком.

Конкретно опиши что нужно- тогда легче будет объяснить.
0
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
24.07.2012, 21:41  [ТС] 8
Оk. Вот алгоритм:
Открываем файл
Считываем последнюю строку
Выводим ее на экран
Дописываем новыую строку (в конец)

Все.

Вот мои соображение по этому поводу, но они не работают
P.S. Работает или одно или другое. (Взависимости от того, что в коде стоит первее)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fstream str;
    
   
   str.open("base.txt",ios_base::in|ios_base::out);   
    int a = ios::end;
    str.seekp(0, ios::end);   
    str.seekp(a - 1);
    std::string stroka;
    while (std::getline(str, stroka));
    std::cout << stroka;
    str.close();
    
    str.open ("base.txt", ios_base::in|ios_base::out);
    str.seekp(0, ios::end);   
            char dateStr [9];
            _strdate( dateStr);
   str << endl << dateStr << " - " << pokaz;
   str.close();
0
Эксперт С++
8291 / 6046 / 601
Регистрация: 10.12.2010
Сообщений: 28,126
Записей в блоге: 25
24.07.2012, 21:56 9
1. Открываем файл для чтения
2. Читаем указанным способом строку.
3. Закрываем файл и открываем заного, но только для "записи в конец", дописываем строку
4. Закрываем файл.

seekp- не юзаем так как он для бинарных файов.
1
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
24.07.2012, 21:57  [ТС] 10
все решилось одной строкой str.clear();
но + дал за поптытку помочь, я это очень ценю
ах да. проблема решена
0
Эксперт С++
8291 / 6046 / 601
Регистрация: 10.12.2010
Сообщений: 28,126
Записей в блоге: 25
24.07.2012, 22:09 11
C++
1
 str.clear();
Это говорит о том что с потоком что то-не то то есть была ошибка.

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
    std::fstream file;    
    std::string str;
    std::string newstr;
    fstream file("base.txt",ios_base::in);
    if(file) 
      {
        while (std::getline(file, str) ) ;
        file.close();
        file.open("base.txt",ios_base::out|ios_base::app);
        file<<newstr;
        file.close();
      } 
}
1
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
25.07.2012, 10:26  [ТС] 12
спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2012, 10:26

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

Сформировать строку, состоящую из всех строчных букв, входящих в заданную строку, без повторов
14 . Сформировать строку, состоящую из всех строчных букв, входящих в заданную строку, без...

Создать новую строку из символов 1-ой заданной строки, которые не входят во вторую заданную строку
Pascal:Создать новую строку из символов 1-ой заданной строки, которые не входят во вторую заданную...

Заданную строку А перепишите в обратном порядке в строку В
Пожалуйста помогите Заданную строку А перепишите в обратном порядке в строку В

ActionScript переход к кадру N при попадании MovieClip в заданную область
Добрый день! Есть MovieClip. Задача: переход к кадру N при попадании этого объекта MovieClip в...

Инвертировать заданную строку
Задание: с клавиатуры вводится строка. Ее необходимо вывести в обратном порядке посимвольно....

Инвертировать заданную строку
Инвертировать заданную строку


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

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

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