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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 219, средняя оценка - 4.68
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
17.06.2010, 21:09     [C++] Работа с файлами #1
Задача: Есть файлы, которые надо обработать:
1.просканировать директории на наличие файлов расширения *.TXT
2.сохранять список путей к файлам в booklist.txt (для дальнейшей работы)
3.вывести booklist.txt на экран

Добавлено через 41 минуту
пытался найти похожие или хоть какие-то программы работы с файлами нашел вот эту

работает с файлами через аргумент и выводит дважды содержание файла:
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
// Заголовочные файлы для ввода-вывода
#include <iostream>
#include <fstream>
 
void printFileTwice (const char* filename)
{
    // Открытие файла
    std::ifstream file(filename);
 
    // Первый вывод содержимого
    std::cout << file.rdbuf();
 
    // Возврат к началу файла
    file.seekg(0);
 
    // Второй вывод содержимого
    std::cout << file.rdbuf();
}
 
int main (int argc, char* argv[])
{
    // Двукратный вывод всех файлов, переданных в командной строке
    for (int i=1; i<argc; ++i) {
        printFileTwice(argv[i]);
    }
}
Добавлено через 16 минут
------------------------------------

Посоветуйте что можно сделать, я в С++ только начал
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2010, 21:09     [C++] Работа с файлами
Посмотрите здесь:

работа с файлами C++
Работа с файлами C++
C++ Работа с файлами
C++ Работа с файлами С++
работа с файлами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
23.06.2010, 19:46  [ТС]     [C++] Работа с файлами #61
kazak, к сожелению функция стала не работающей
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
23.06.2010, 21:21     [C++] Работа с файлами #62
Цитата Сообщение от Egeni Посмотреть сообщение
к сожелению функция стала не работающей
Что значит стала? Все прекрасно работает.
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.06.2010, 00:07  [ТС]     [C++] Работа с файлами #63
невыходит.. ошибок не пишет, компилируется, но файл не обрабатывается... даже незнаю как это
Код
return 0
мне кажется изза этого, нет? обычно функции чтото должны возвращать, или я ошибаюсь?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
25.06.2010, 00:41     [C++] Работа с файлами #64
А выходной файл ты где ищешь?
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.06.2010, 01:18  [ТС]     [C++] Работа с файлами #65
может я как то не так запускаю, но выходной файл создается в этой же папке с программой и коментарии программа не удаляет, выходит что не работает
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.06.2010, 07:32  [ТС]     [C++] Работа с файлами #66
несколько раз пробовал переделать выход, но функция ничего не обрабатывает
прикладываю исходник и программу
Вложения
Тип файла: rar build25.06.2010.rar (11.9 Кб, 10 просмотров)
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
25.06.2010, 09:24     [C++] Работа с файлами #67
Программа отрабатывает нормально, как запрограммировали. Удаляет комментарии в стиле С /**/
С++'ые не трогает.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,270
25.06.2010, 12:16     [C++] Работа с файлами #68
А чё, там комменты по-разному оформляются?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.06.2010, 13:20     [C++] Работа с файлами #69
Цитата Сообщение от kravam Посмотреть сообщение
А чё, там комменты по-разному оформляются?
комментарии "до конца строки"
C++
1
// бла бла бла
в ANSI C 89 не поддерживаются. gcc поддерживает стандарт ANSI C 99, допускающий такие комментарии, но мелкомягкие/борландовские компиляторы так С программу не скомпилируют.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,270
25.06.2010, 13:34     [C++] Работа с файлами #70
Предлагаю считать // комменатриями безоговорочно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.06.2010, 13:46     [C++] Работа с файлами #71
Цитата Сообщение от kravam Посмотреть сообщение
Предлагаю считать // комменатриями безоговорочно
смело хотя, как оказалось, мелкомягкий cl комментарии в духе с++ понимает, борландовского под рукой нету, проверьте, кому интересно...
Код
C:\cpp\strings>type h.c
#include <stdio.h>
int main(void){
        // output string
        printf("Hello, world!\n");
        return 0;
}

C:\cpp\strings>cl h.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

h.c
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:h.exe
h.obj

C:\cpp\strings>h.exe
Hello, world!

C:\cpp\strings>
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
26.06.2010, 09:46  [ТС]     [C++] Работа с файлами #72
Знаю что в стандарте С нет регулярных выражений.
Хочу попробывать на основе предыдущих кодов собрать функцию поиска по шаблону регулярных выражений.

Аналог
PHP
1
int preg_match_all ( string $pattern , string $subject , array &$matches [, int $flags [, int $offset ]] )

(шаблон, строка, массив)
(pattern,subject,outarray)
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
24.07.2010, 22:15  [ТС]     [C++] Работа с файлами #73
возникает путаница с "/*" "*/" воспринимает как сам коментарий

и режет строку в которой частично упомянут коментарий
пока не удаляет коментарии вида //
Код программы
#include<iostream> // Required for cin, cout, and cerr.
#include<fstream> // Required for ifstream and ofstream.

using namespace std;

#define DelStart "/*"
#define DelStop "*/"
#define INPUT "E:\\4test\\delcom.txt"
#define OUTPUT "E:\\4test\\delcom-out.txt"

int commentor(char *DelStart, char *DelStop, char *INPUT, char *OUTPUT){
char buf[32769] = {'\0'};
char *tmp;

int f_c = 0;
ifstream file_in;
ofstream file_out;

file_in.open(INPUT); if (!file_in.is_open()){
cerr << "Can not open input file" << endl; system("pause"); return 1; }
file_out.open(OUTPUT); if (!file_out.is_open()){
cerr << "Can not open output file" << endl; system("pause"); return 1; }

while (file_in.good())
{
file_in.getline(buf, 32768);
if (!f_c)
{
if ((tmp = strstr(buf, DelStart)) != NULL)
{
*tmp = '\0';
f_c = 1;
for (int i = 0; i < strlen(buf); i++)
{
if (buf[i] != ' ' && buf[i] != '\t')
{
file_out << buf << endl;
break;
}
}
continue;
}
else
file_out << buf << endl;
}
else
{
if ((tmp = strstr(buf, DelStop)) != NULL)
{
f_c = 0;
}
}
}
file_out.close();
return 0;
}


int main(int argc, char* argv[]){
commentor(DelStart, DelStop, INPUT, OUTPUT);/*
commentor("/*", "*\/", "E:\\4test\\delcom.txt", "E:\\4test\\delcom-out.txt");*/
return 0;
}
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.07.2010, 12:28     [C++] Работа с файлами #74
Цитата Сообщение от Egeni Посмотреть сообщение
возникает путаница с "/*" "*/" воспринимает как сам коментарий
путаницы никакой нет, просто алгоритм простой, не учитывающий, что символы комментария могут находиться в строке.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2014, 17:45     [C++] Работа с файлами
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
10.01.2014, 17:45  [ТС]     [C++] Работа с файлами #75
а как сделать чтобы учитывал?
Yandex
Объявления
10.01.2014, 17:45     [C++] Работа с файлами
Ответ Создать тему
Опции темы

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