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

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

Войти
Регистрация
Восстановить пароль
 
11-22-33b
Сообщений: n/a
#1

Работа с файлом - C++

07.07.2009, 15:24. Просмотров 492. Ответов 2
Метки нет (Все метки)

Пожалуйста, помогите решить задачку..
Написать на чистом C (без использования C++) консольную программу, которая:
- Считывает с диска указанный в командной строке текстовый файл.
- Выводит его на экран в обратном порядке, т.е. сначала последнюю
строку и так далее до первой.
Буду очень благодарен....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2009, 15:24     Работа с файлом
Посмотрите здесь:

работа с файлом) C++
Работа с файлом C++
Работа с файлом C++
C++ Работа с файлом
C++ Работа с файлом
Работа с файлом C++
Работа с файлом C++
Работа с файлом C++
Работа с файлом C++
C++ Работа с файлом
If работа с файлом C++
C++ Работа с файлом

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
07.07.2009, 16:24     Работа с файлом #2
Вот программа. Демонстрационная версия обрабатывает до 10 строк в файле

Пример использования:

содержимое файла test.txt
1
2
3
4
5

Запуск:
reverse_file test.txt

Вывод:
5
4
3
2
1
Вложения
Тип файла: zip reverse_file.zip (43.3 Кб, 18 просмотров)
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
07.07.2009, 16:46     Работа с файлом #3
Вот программа. Демонстрационная версия обрабатывает до 10 строк в файле
А сколько стоит полнофункциональная версия ?

Добавлено через 15 минут 25 секунд
Я тоже решил сделать демо-версию

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdio.h>
#include <stdlib.h>
 
#define MAX_LINE_SIZE   1024
#define DEMO_MAX_LINES  10
 
int chislo_strok( const char *infile );
void pechat_stroki( const char *infile, int line_num );
 
 
/* ============================================================ */
int main( int argc, char *argv[] ) {
        
int lines, i;
        
argc--;
argv++;
 
if ( argc != 1 ) { exit( 2 ); }
 
lines= chislo_strok( argv[0] );
/* printf( "lines=%d\n", lines ); */
#if defined(DEMO_MAX_LINES)
if ( lines>DEMO_MAX_LINES ) {
    fprintf( stderr, "Eto demo versija, ne bolee %d strok, oplata 45 WMZ !\n", DEMO_MAX_LINES );
    exit( 1 );
}
#endif
for ( i= lines-1; i>=0; i-- ) {
        pechat_stroki( argv[0], i );
}
 
exit( 0 );
 
} /* main() */
 
 
/* ============================================================ */
int chislo_strok( const char *infile ) {
 
FILE *fin= NULL;
int cur_line_num= 0;
 
char buf[MAX_LINE_SIZE];
 
 
fin= fopen( infile, "rt" );
if ( fin == NULL ) { fprintf( stderr, "Gde file ?\n" ); exit( 1 ); }
for ( ; ; ) {
        if ( fgets( buf, sizeof(buf), fin ) == NULL ) {
                if ( feof( fin ) ) { break; }
                fprintf( stderr, "Oshipka chtenija faila !\n" ); exit( 1 );
        }
        cur_line_num++;
}
fclose( fin ); fin= NULL;
 
return cur_line_num;
 
} /* chislo_strok() */
 
 
/* ============================================================ */
void pechat_stroki( const char *infile, int line_num ) {
 
FILE *fin= NULL;
int cur_line_num= 0;
 
char buf[MAX_LINE_SIZE];
 
 
fin= fopen( infile, "rt" );
if ( fin == NULL ) { fprintf( stderr, "Gde file ?\n" ); exit( 1 ); }
for ( ; ; ) {
        if ( fgets( buf, sizeof(buf), fin ) == NULL ) {
                if ( feof( fin ) ) { fprintf( stderr, "Neozhidanno popalsja konec !\n" ); exit( 1 ); }
                fprintf( stderr, "Oshipka chtenija faila !\n" ); exit( 1 );
        }
        if ( cur_line_num == line_num ) {
                printf( "%s", buf );
                break;
        }
        cur_line_num++;
}
fclose( fin ); fin= NULL;
 
} /* pechat_stroki() */
Yandex
Объявления
07.07.2009, 16:46     Работа с файлом
Ответ Создать тему
Опции темы

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