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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
#1

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

24.07.2012, 20:14. Просмотров 993. Ответов 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];
но не судьба не получается (наверно потому что курсор в самом конце)
так вот как мне считать последнюю строку?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2012, 20:14     Переход на заданную строку
Посмотрите здесь:

Разрядить пробелами заданную строку - C++
Дана строка состоящая из элементов. Разрядить пробелами заданную строку. Добавлено через 17 часов 46 минут Всё еще нужна помощь.

Прочитать из файла заданную строку - C++
Немного запутался, если у меня есть в файле: abc def ghi Как мне засунуть в массив именно третью строчку?

Преобразовать к верхнему регистру заданную строку - C++
Всем доброго времени суток. все сделал, работает. Но есть одно но... Подскажите пожалуйста как сделать что бы переводило к верхнему...

Работа с файлами: получить заданную строку - C++
Даны текстовый файл, строка s. Получить все строки файла f, содержащие в качестве фрагмента строку s. Не надо злоупотреблять Caps Lock!...

Строки. Уменьшить заданную строку на К символов - C++
Помогите пожалуйста! Нужно написать программу с функцией, уменьшающей заданную строку на К символов , где К меньше или равно длине строки.

Замена символа пробела на заданную строку - C++
здрасти, со строками у меня как то плохо все, как заменить все символы пробелов на строку &quot; !##! &quot;? int main() { char probel = '...

Заменить заданную строку матрицы а на вектор b - C++
Дана 4х4 , вектор b размерностью 4. Заменить заданную строку матрицы а на вектор b. Номер строки матрицы а вводить с клавиатуры. Матрицу...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
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;
 
}
Avazart
Эксперт С++
7115 / 5292 / 273
Регистрация: 10.12.2010
Сообщений: 23,387
Записей в блоге: 17
24.07.2012, 20:27     Переход на заданную строку #3
Цитата Сообщение от НубаС++ Посмотреть сообщение
так вот как мне считать последнюю строку?
Никак, нужно для начала прочитать весь файл полностью.
НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
24.07.2012, 20:58  [ТС]     Переход на заданную строку #4
Вашим способом не получается почему то, тоесть получается, он выводит на экран последнюю строку НО почему то затем уже программа начинает косячить, те не записывает в файл
Avazart
Эксперт С++
7115 / 5292 / 273
Регистрация: 10.12.2010
Сообщений: 23,387
Записей в блоге: 17
24.07.2012, 21:06     Переход на заданную строку #5
Так ты разберись сначала что тебе надо записывать или читать файл?
НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
24.07.2012, 21:17  [ТС]     Переход на заданную строку #6
и то и то у меня ios_base::in|ios_base::out
Avazart
Эксперт С++
7115 / 5292 / 273
Регистрация: 10.12.2010
Сообщений: 23,387
Записей в блоге: 17
24.07.2012, 21:30     Переход на заданную строку #7
И то и то не канает.

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

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

Конкретно опиши что нужно- тогда легче будет объяснить.
НубаС++
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();
Avazart
Эксперт С++
7115 / 5292 / 273
Регистрация: 10.12.2010
Сообщений: 23,387
Записей в блоге: 17
24.07.2012, 21:56     Переход на заданную строку #9
1. Открываем файл для чтения
2. Читаем указанным способом строку.
3. Закрываем файл и открываем заного, но только для "записи в конец", дописываем строку
4. Закрываем файл.

seekp- не юзаем так как он для бинарных файов.
НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
24.07.2012, 21:57  [ТС]     Переход на заданную строку #10
все решилось одной строкой str.clear();
но + дал за поптытку помочь, я это очень ценю
ах да. проблема решена
Avazart
Эксперт С++
7115 / 5292 / 273
Регистрация: 10.12.2010
Сообщений: 23,387
Записей в блоге: 17
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();
      } 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2012, 10:26     Переход на заданную строку
Еще ссылки по теме:

Заданную строку перевести в массив из слов - C++
Всем привет, вот дан string предложение, нужно все это перевести в массив из слов . Что можно сделать?

Как передать заданную строку матрицы в функцию? - C++
есть массив и из него надо взять определенную строку состоящей из неизвестного количества элементов и поместить в отдельную функцию. знаю,...

Функция поиска вхождения строки в заданную строку в С - C++
получил в универе такое задание Функция - Findwords(s,s1). Назначение - поиск вхождения в строку s заданной фразы (последовательности...

Определить количество вхождений подстроки в заданную строку - C++
Определить количество вхождений подстроки в заданную строку.. Добавлено через 3 часа 57 минут Вообщем сам допер. Если кому...

Функция: замена подстроки в строке на заданную строку - C++
Помогите пожалуйста с данной задачей: Реализовать на языке C функцию замены подстроки в строке на заданную строку.


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

Или воспользуйтесь поиском по форуму:
НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
25.07.2012, 10:26  [ТС]     Переход на заданную строку #12
спасибо
Yandex
Объявления
25.07.2012, 10:26     Переход на заданную строку
Ответ Создать тему
Опции темы

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