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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 45, средняя оценка - 4.98
Cowboy_Joe
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 3
#1

Построчное перемещение курсора в текстовом файле - C++

29.11.2010, 21:00. Просмотров 6135. Ответов 4
Метки нет (Все метки)

Кусочек кода, см. комментарии
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
switch(flag)
{
    case'1':
        
            {
        
        f=fopen(value, "r"); //Открываем необходимый файл
        if (f!= NULL)
            printf("File opened.\n");
        else
            printf("Error.\n");
            
            }
        break;
    
    case'2':
        
        n=atoi(value);
        
            for (i = 0; i < n; i++) 
            {
              fflush(stdout);   
              fgets(mass[i], 50, f);   //Из уже открытого файла считываем, 
                                       //например 5 строк, курсор остается на 5 строке
              printf("%s",mass[i]);
              fflush(stdout);
              
            }
            
            //fseek(f, 0L, SEEK_SET); //Раскомментировать, если нужно, чтобы 
                                      //курсор вернулся в начало файла (можно забыть об этом)
    break;
    
    case'3':
//В данном кейсе нужно, чтобы прграмма, с учетом положения 
//курсора в данный момент (например, начало 5-ой строки), 
//передвигала его построчно вверх или вниз по файлу на то 
//количество строк, которое ввел пользователь (value, которое 
//использовалась ранее). Например, пользователь ввел значение "5", 
//курсор оказался вначале 10-й строки, "-5" - вначале первой. 
//Как сделать это через fseek (цикл с нахождением символа конца 
//строки и счетчиком?) или getline я не понимаю. Буду
//благодарен за любую помощь
        
        
        break;
    
    default:
        printf("Exit\n");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2010, 21:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Построчное перемещение курсора в текстовом файле (C++):

Перемещение курсора в файле - C++
Здравствуйте! Пишу программу, где работаю с файлом с помощью потока, и понадобилось переместить курсор в начало строки, т.к. getline при...

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

Удалить в текстовом файле 1.txt все строки, которые встречаются в текстовом файле 2.txt - C++
например имеется текстовый файл 1.txt c таким содержанием 111 222 333 444 555 и имеется текстовый файл 2.txt c таким...

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

Перемещение курсора - C++
Подскажите как передвинуть курсор в любую точку экрана по координатам x и y. Или каким нибуд другим способом?

Перемещение курсора - C++
Мне нужно сделать что-то типа интерфейса на консоли.Как задавать координаты курсора на консоли в С++?(в Паскале аналог gotoxy()). ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
29.11.2010, 21:45 #2
Смущает
вверх или вниз по файлу
Если ты имеешь ввиду окно текстового редактора, с текстом, тогда не знаю.
А если "вверх или вниз" это значит "вперёд ли назад" (ну то ест просто файл открыт некоторой фуенкцией, например fopen) тогда попробую помочь
Cowboy_Joe
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 3
30.11.2010, 06:19  [ТС] #3
Цитата Сообщение от kravam Посмотреть сообщение
это значит "вперёд ли назад" (ну то ест просто файл открыт некоторой фуенкцией, например fopen) тогда попробую помочь
Да, именно так, файл просто открыт функцией fopen
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
30.11.2010, 22:04 #4
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <windows.h> 
#include <stdio.h>
 
int main () {
 
 char per;
 int kolvo_strok;
 
 
 
 FILE* f;
 
 //файл необходимо обязательно открыть в бинарном режиме
 f= fopen ("f.txt", "rb");
 if (!f) {
  printf ("fail f.txt na ctenie ne otkrit\n");
  return 0;
 }
 
 //УСТАНАВЛИВАЕМ СЧЁТЧИК ФАЙЛА В ПОЗИЦИЮ 30, Это начало шестой строки
 printf ("=%d\n", fseek (f, 30, SEEK_SET));
 
 kolvo_strok= -5;
 
 //Поехали назад. По окончании этого цикла счётчик будет установлен в конец первой строки
 for (;kolvo_strok;) {
  fseek (f, -1, SEEK_CUR);
  per= fgetc (f);
  fseek (f, -1, SEEK_CUR);
  if (per== 10)
   kolvo_strok+=1;
 }
 
 //а по окончании этого- в начало первой строки
 do {
  fseek (f, -1, SEEK_CUR);
  per= getc (f);
  fseek (f, -1, SEEK_CUR);
 }
 while (ftell (f)&&per!=10); 
 
 per= getc (f);
 
 printf ("%c\n", per); 
 fclose (f);
  
 system ("pause");
 return 0;
}
Вот в качестве образца осчитывание назад, текстовый файл должен быть таким:
C++
1
2
3
4
5
6
7
8
9
io
kkk
rrrr
asdfg
hjklzx
cvbnm,.
asdfghjk
qwertyuio
poiuytrewq
Cowboy_Joe
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 3
01.12.2010, 16:54  [ТС] #5
Большое спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2010, 16:54
Привет! Вот еще темы с ответами:

Перемещение курсора в консоли - C++
Помогите реализовать новичку перемещение курсора в консоли.Т.е. есть меню например Создать базу Редактировать Удалить И нужно...

Перемещение позиции курсора в консоли - C++
Приветы форумчанам, вопрос такой. Нужно переместить позицию курсора на произвольную позицию в консольном приложении. Есть ли такая функция...

Перемещение текстового курсора вверх (анти endl;) - C++
Есть ли опрератор,который работает противоположно endl;?Тобиш мне нужен пробел не в низ,а вверх.

Перемещение курсора мыши на заданные координаты и клик - C++
Добрый день. Подскажите, пожалуйста, как можно реализовать сабж. Гугление выдает некоторые варианты, но ни один из примеров не...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.12.2010, 16:54
Ответ Создать тему
Опции темы

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