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

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

Восстановить пароль Регистрация
 
Swee
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 9
25.08.2010, 15:43     Работа с файлами #1
Ребят, помогите плиз написаь программку, которой параметром передается имя текстового файла, а она выводит этот файл на экран...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2010, 15:43     Работа с файлами
Посмотрите здесь:

Работа с файлами C++
C++ РАБОТА С ФАЙЛАМИ
C++ Работа с файлами
работа с файлами C++
Работа с файлами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.08.2010, 18:04     Работа с файлами #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(int argc, char ** argv){
    char buf[BUFSIZ] = "type ";
    if ( argc < 2 ){
        fprintf(stderr, "Usage: %s file_name\n", argv[0]);
        return 1;
    }
    system(strcat(buf, argv[1]));
    exit(0);
}
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
25.08.2010, 19:59     Работа с файлами #3
C++
1
2
3
4
5
6
7
8
#include <iostream> 
#include <fstream> 
 
int main( int argc, const char* argv[] ) 
{ 
  std::cout << std::ifstream(argv[1]).rdbuf() << std::endl; 
  return 0; 
}
Swee
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 9
29.08.2010, 19:17  [ТС]     Работа с файлами #4
Спасибо всем, все великолепно!!!

Можете пожалуйста чуток исправить, а то я еще тока учусь...

Надо, чтобы мы сами открывали файл и все из него могли прочитать и распечатать... Т.е. грубо говоря, чтобы мы могли при распечатывании что-то еще сделать с текстом. Нужно заменить все встречающие буквы А на Х. Помогите пожалуйста! Буду премного благодарен!
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
29.08.2010, 21:36     Работа с файлами #5
Цитата Сообщение от Swee Посмотреть сообщение
Надо, чтобы мы сами открывали файл и все из него могли прочитать и распечатать... Т.е. грубо говоря, чтобы мы могли при распечатывании что-то еще сделать с текстом.
Да не вопрос, только буковки менять - это не интересно...
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
 
char * strtoupper(char * s){
    char * p;
    
    if ( ! s )
        return NULL;
    
    for ( p = s; *p; ++p )
        *p = toupper(*p);
    
    return s;
}
 
char * strtolower(char * s){
    char * p;
    
    if ( ! s )
        return NULL;
    
    for ( p = s; *p; ++p )
        *p = tolower(*p);
    
    return s;
}
 
void usage(const char * s){
    fprintf(stderr, "Usage: %s [-u | -l] [-n] <file_name> | -h\n", s);
}
 
int main(int argc, char ** argv){
    char buf[BUFSIZ], * progName, * fileName, * arg;
    FILE * f;
    long cnt;
    int lowerFlag, upperFlag, cntFlag;
    
    progName = argv[0];
    cnt = 0;
    lowerFlag = upperFlag = cntFlag = 0;
    
    if ( argc < 2 ){
        usage(progName);
        exit(1);
    }
    
    while ( --argc ){
        arg = *++argv;
        if ( *arg == '-' ){
            switch ( *++arg ){
            case 'h' :
                printf("This program reads file given as parameter file_name line by line\n"
                        "and prints it to standart output. Parameters:\n"
                        "-u print characters in uppercase, can't be used with -l\n"
                        "-l print characters in lowercase, can't be used with -u\n"
                        "-n print line numbers\n"
                        "-h print this help message and exit\n"
                    );
                exit(0);
            case 'n' :
                cntFlag = 1;
                break;
            case 'u' :
                upperFlag = 1;
                break;
            case 'l' :
                lowerFlag = 1;
                break;
            default :
                fprintf(stderr, "%s: unknown parameter -%c\n", progName, *arg);
                usage(progName);
                exit(1);
            }
        }
        else
            fileName = arg;
    }
    
    if ( lowerFlag & upperFlag ){
        fprintf(stderr, "%s: you can't use parameters -l and -u at same time!\n", progName);
        usage(progName);
        exit(1);
    }
    
    if ( ( f = fopen(fileName, "r") ) == NULL ){
        fprintf(stderr, "%s: can't open file %s for input!\n", progName, fileName);
        exit(1);
    }
    
    while ( fgets(buf, BUFSIZ, f) ){
        if ( cntFlag )
            printf("%03d   ", ++cnt);
        printf("%s", ( lowerFlag ) ? strtolower(buf) : ( upperFlag ) ? strtoupper(buf) : buf);
    }
    if ( ferror(f) ){
        fprintf(stderr, "%s: error while reading file %s\n", progName, fileName);
        exit(1);
    }
    
    if ( fclose(f) ){
        perror("fclose");
        exit(1);
    }
    
    exit(0);
}
Swee
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 9
30.08.2010, 12:13  [ТС]     Работа с файлами #6
Какой божественный ответ! =) Спасибо) Пойду разбираться и заодно погляжу куда воткнуть буковки)))

Добавлено через 23 минуты
Ой)) Budda, расскажите пожалуйста как это чудо работает)) Я нажимаю ctrl-F5 и получаю путь к проекту))) А как там что либо менять?) что-то я не понял)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2010, 20:20     Работа с файлами
Еще ссылки по теме:

C++ Работа с файлами
C++ Работа с файлами на С++
Работа с файлами C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.08.2010, 20:20     Работа с файлами #7
Цитата Сообщение от Swee Посмотреть сообщение
Я нажимаю ctrl-F5
У меня вот Ctrl+F5 хоть обнажимайся - ничего интересного не происходит... Да и вопрос как-то не понял, если честно... У Вас по заданию программа должна имя файла в качестве параметра принимать. Это значит, что имя файла должно в командной строке после имени программы указываться. Если Вы скомпилированную программу прямо из среды разработки (MS VisualStudio, CodeBlocks, etc...) запускаете, где-то в настройках должны быть параметры, которые программе при запуске передаются... Я IDE не пользуюсь (по крайней мере для консольных программ), могу рассказать, как из консоли запустить:
Win+R (Win - это кнопка с флажком между Ctrl и Alt), в появившемся окне пишите cmd жмёте enter - открывается окно консоли. В нём
cd \path\to\compiled\program
porogram.exe file.txt
(file.txt - текстовый файл, находящийся в одной папке с программой)
Как осилите это замысловатое действо, попробуйте
program.exe -h
program.exe -u -n file.txt
Yandex
Объявления
30.08.2010, 20:20     Работа с файлами
Ответ Создать тему
Опции темы

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