Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 15
1

Почему значение tellg() не изменяется?

05.08.2010, 10:38. Показов 3204. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Следующий код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
 
using namespace std;
 
void main()
{
    ifstream file;
    file.open("words.txt");
 
    while (!file.eof())
        file.get();
 
    cout << file.tellg() << endl;
 
    file.seekg(0, ios::beg);
 
    cout << file.tellg() << endl;
}
Выдает результат:
-1
-1

То есть, значение, возвращаемое функцией tellg() никак не изменяется после применения функции seekg().

Вопросы:
1) почему так?
2) как сделать, чтобы tellg() выдавала значение, устанавливаемое seekg()?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.08.2010, 10:38
Ответы с готовыми решениями:

Почему не изменяется значение члена класса
Инструкция по запуску: &lt;имя.exe&gt; &lt;inputfilename&gt; &lt;outputfilename&gt; &lt;-s|-i&gt; &lt;-a|-d&gt; В конструкторе...

Почему изменяется значение переменной между функциями класса?
Почему-то изменяется значение переменной m(кол-во специальностей) в output_spec. Пробовал в других...

Вычислить значение функции a = b ^2 sin (b), причем b изменяется от 0,9 до 1,7 с шагом 0,2. Найти среднее значение разности между элементами
Доброго времени суток ! Помогите решить задачу ! Нужно написать в цикле с постусловием следующее...

Почему не изменяется строка в массиве?
#include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; int main() { const int nstr=4,...

2
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
05.08.2010, 11:35 2
Цитата Сообщение от Михаэль Посмотреть сообщение
почему так?
Цитата Сообщение от Михаэль Посмотреть сообщение
file.open("words.txt");
а файл точно открылся?
C++
1
2
3
4
5
6
...
if ( ! file.is_open() ){
  cerr << "Can't open input file!" << endl;
  return 1;
}
...
это во-первых,
а во-вторых seekg флаг eof не снимает, потому оба раза -1 и возвращается.
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
05.08.2010, 16:02 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
 
int main(){
    std::ifstream ifs("input.txt", std::ios::binary);
    if ( ! ifs.is_open() ){
        std::cerr << "Can't open input file!" << std::endl;
        return 1;
    }
    std::cout << "Open position: " << ifs.tellg() << std::endl;
    ifs.seekg(0, std::ios::end);
    std::cout << "End position: " << ifs.tellg() << std::endl;
    ifs.seekg(0, std::ios::beg);
    std::cout << "Start position: " << ifs.tellg() << std::endl;
 
    ifs.close();
    return 0;
}
Почему значение tellg() не изменяется?
0
05.08.2010, 16:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2010, 16:02
Помогаю со студенческими работами здесь

почему изменяется и первый экземпляр класса
Почему значение a.m становится равным b.m? Как сделать так, чтобы массив word можно было...

Написал программку с рекурсией. Не могу понять, почему не изменяется аргумент.
Еще раз здравствуйте. Днем будучи в очереди которая затянулась на 2 часа, решил побаловаться с...

Изменяется значение щетчика
програма читает с файлов числа, и выводит на екран. Не могу понять, почему щетчики i,j после...

Не изменяется значение переменной в объекте
Переменная health меняет своё значение только внутри функции punch(), при этом её значение в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru