Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.70/155: Рейтинг темы: голосов - 155, средняя оценка - 4.70
Egeni
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
1

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

17.06.2010, 21:09. Просмотров 28245. Ответов 74
Метки нет (Все метки)

Задача: Есть файлы, которые надо обработать:
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 минут
------------------------------------

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

Работа с файлами
Здравствуйте, делаю задачку &quot;Выборочная сортировка&quot;, но застрял на работе с...

Работа с файлами
Нужно создать программу которая записывает в файл,вводимый текст. Далее...

Работа с файлами в С++
Дан текстовый файл. Нужно напечатать все строки, длина которых равна заданному...

Работа с файлами
написал класс fail для чтения из файла class fail { public: fail( int...

Работа с файлами
Есть толпа зверушек. Нужно указать: номер записи, название животного,...

74
Egeni
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
23.06.2010, 19:46  [ТС] 61
kazak, к сожелению функция стала не работающей
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
23.06.2010, 21:21 62
Цитата Сообщение от Egeni Посмотреть сообщение
к сожелению функция стала не работающей
Что значит стала? Все прекрасно работает.
1
Egeni
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.06.2010, 00:07  [ТС] 63
невыходит.. ошибок не пишет, компилируется, но файл не обрабатывается... даже незнаю как это
Код
return 0
мне кажется изза этого, нет? обычно функции чтото должны возвращать, или я ошибаюсь?
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
25.06.2010, 00:41 64
А выходной файл ты где ищешь?
1
Egeni
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.06.2010, 01:18  [ТС] 65
может я как то не так запускаю, но выходной файл создается в этой же папке с программой и коментарии программа не удаляет, выходит что не работает
0
Egeni
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
25.06.2010, 07:32  [ТС] 66
несколько раз пробовал переделать выход, но функция ничего не обрабатывает
прикладываю исходник и программу
0
Вложения
Тип файла: rar build25.06.2010.rar (11.9 Кб, 11 просмотров)
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
25.06.2010, 09:24 67
Программа отрабатывает нормально, как запрограммировали. Удаляет комментарии в стиле С /**/
С++'ые не трогает.
1
kravam
быдлокодер
1710 / 897 / 105
Регистрация: 04.06.2008
Сообщений: 5,549
25.06.2010, 12:16 68
А чё, там комменты по-разному оформляются?
1
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
25.06.2010, 13:20 69
Цитата Сообщение от kravam Посмотреть сообщение
А чё, там комменты по-разному оформляются?
комментарии "до конца строки"
C++
1
// бла бла бла
в ANSI C 89 не поддерживаются. gcc поддерживает стандарт ANSI C 99, допускающий такие комментарии, но мелкомягкие/борландовские компиляторы так С программу не скомпилируют.
1
kravam
быдлокодер
1710 / 897 / 105
Регистрация: 04.06.2008
Сообщений: 5,549
25.06.2010, 13:34 70
Предлагаю считать // комменатриями безоговорочно
1
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
25.06.2010, 13:46 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>
1
Egeni
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
26.06.2010, 09:46  [ТС] 72
Знаю что в стандарте С нет регулярных выражений.
Хочу попробывать на основе предыдущих кодов собрать функцию поиска по шаблону регулярных выражений.

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

(шаблон, строка, массив)
(pattern,subject,outarray)
0
Egeni
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
24.07.2010, 22:15  [ТС] 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;
}
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
26.07.2010, 12:28 74
Цитата Сообщение от Egeni Посмотреть сообщение
возникает путаница с "/*" "*/" воспринимает как сам коментарий
путаницы никакой нет, просто алгоритм простой, не учитывающий, что символы комментария могут находиться в строке.
0
Egeni
10 / 10 / 2
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
10.01.2014, 17:45  [ТС] 75
а как сделать чтобы учитывал?
0
10.01.2014, 17:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2014, 17:45

Работа с файлами
ДОБРЫЙ ВЕЧЕР! Такая задачка.. Написать программу по созданию базы данных (...

Работа с файлами в С++
Здравствуйте! Следующая проблема: С++ не может открыть файл. Пробовал и...

Работа с файлами С++
Помогите пожалуйста с чтением/записью в файл есть код программы, где из файла...


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

Или воспользуйтесь поиском по форуму:
75
Ответ Создать тему
Опции темы

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