Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > трабл с tellg


Автор: Rockie 21.5.2006, 03:36
здравствуйте. 

содержимое файла test.txt: 
Цитата
qwerty, Vasya

проблема такого рода: читаю из файла слова, ищу те которые начинаются с большой буквы и запоминаю в start_position позицию, где это слово в файле начинается (где большая буква в файле находится). думал так: текущая_позиция_в_файле - длина_слова = начало_слова. 
использую tellg, почему-то возвращает -1. в итоге вместо 8-ми или 9-ти получаю -6. как сделать правильно? компилер BCBuilder 6

Код
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <fstream.h>

int main(){
  char word[15];                     // word array
  int start_position = 0;

  ifstream read_file("test.txt");   // open file
  if (!read_file) return 0;

   while(!read_file.eof())
    { read_file>>word;              // read word from file
      cout<<word<<' ';
      if( word[0]>=65 && word[0]<=90 ) // search first big letter in the word
       { start_position = (int)read_file.tellg() - (int)strlen(word);
         cout<<'\n'<<start_position<<'\n';
       }
    }

   read_file.close();
   getch();
   return 0;
}
 

Автор: Damarus 21.5.2006, 11:32
Странно, у меня работает (VS2005). 

Автор: Rockie 21.5.2006, 12:59
Damarus, спасибо. 
проверил. в Turbo C++ 3.0 выдает 8. вот это блин... час промаялся а оно работает.. спортивного интереса ради - может быть кто-то знает как исправить чтоб работало под билдером? или рекомендации переставить(выкинуть?!!) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)