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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Rolan_Pro
5 / 5 / 1
Регистрация: 20.04.2011
Сообщений: 89
#1

[C++] Вывод в файл. - C++

16.12.2011, 17:46. Просмотров 1416. Ответов 5
Метки нет (Все метки)

В доброго времени суток!
Дело такое, нужно что бы в файл выводилось такая информация:
[list]
sound_1
sound_2
sound_3
...
sound_n

[sound_1]

Дело в том, что sound_ может быть сколько угодно, соответственно и секций должно быть столько же.
Файлы берутся из папки, поиск осуществляю с помощью такого кода:
SearchFiles
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
BOOL SearchFiles(LPCTSTR lpszFileName, LPSEARCHFUNC lpSearchFunc, BOOL bInnerFolders = TRUE) 
{
    LPTSTR part;
    char tmp[MAX_PATH]; 
    char name[MAX_PATH];
 
    HANDLE hSearch = NULL;
    WIN32_FIND_DATA wfd;
    memset(&wfd, 0, sizeof(WIN32_FIND_DATA));
 
    
    if(bInnerFolders)
 
    {
        if(GetFullPathName(lpszFileName, MAX_PATH, tmp, &part) == 0) return FALSE;
        strcpy(name, part);
        strcpy(part, "*.*");
 
        wfd.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY;
        if (!((hSearch = FindFirstFile(tmp, &wfd)) == INVALID_HANDLE_VALUE))
        do
        {
            
            if (!strncmp(wfd.cFileName, ".", 1) || !strncmp(wfd.cFileName, "..", 2))            
            continue;
        
            if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
            {
                char next[MAX_PATH];
                if(GetFullPathName(lpszFileName, MAX_PATH, next, &part) == 0) return FALSE;
                strcpy(part, wfd.cFileName);
                strcat(next, "\\");
                strcat(next, name);
 
                SearchFiles(next, lpSearchFunc, TRUE);
            }
        }
        while (FindNextFile(hSearch, &wfd));
        FindClose (hSearch);
    }
 
    if ((hSearch = FindFirstFile(lpszFileName, &wfd)) == INVALID_HANDLE_VALUE) 
        return TRUE; 
    do
    if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) 
    {
        char file[MAX_PATH];
        if(GetFullPathName(lpszFileName, MAX_PATH, file, &part) == 0) return FALSE;
        strcpy(part, wfd.cFileName);
 
        lpSearchFunc(file);
    }
    while (FindNextFile(hSearch, &wfd)); 
    FindClose (hSearch); 
 
    return TRUE;
}

в файл вывожу с помощью:
trace
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void trace(char *fmt, ...)
{
    static FILE *file;
    static short init = 1;
    va_list args;
    char str[254];
 
    va_start(args, fmt);
    vsprintf_s(str, fmt, args);
    va_end(args);
 
    if(init != NULL)
    {
        init = NULL;
        file = fopen("file.txt", "w");
    }
    else
        file = fopen("file.txt", "a+");
 
    fprintf_s(file, "%s\n", str);
    fclose(file);
}

Подскажете как реализовать, примером кода желательно.

Добавлено через 1 час 1 минуту
И что б в каждую секцию sound писалась информация :
name = "tratata"
album = "tratata"
artist = "tratata"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 17:46     [C++] Вывод в файл.
Посмотрите здесь:

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

Вывод в файл - C++
Парни, подскажите как в С++ сделать вывод в цикле каждый раз в новый файл. Что-то вроде этого: for(i=1;i<=N-1;i++){ ofstream...

Вывод в файл - C++
Пытаюсь сделать что-то полезное в жизни:scratch: #include <iostream> #include <fstream> using namespace std; int main(void){ ...

Вывод в файл - C++
подскажите пожалуйста, почему у меня через функцию не хочет в файл выводить? Ошибки: 1>c:\юра\out\out\out.cpp(78) : error C2065:...

вывод в файл - C++
Всем добрый день! Задание таково: Исходный массив, промежуточные данные и результаты вывести в файл. почитал про вывод в файл но...

Вывод в файл - C++
Ребят, как сделать что бы при выводе в файл черезcin>> числа выводились нормально, а не так: 1,725454e+010?????

Вывод в файл - C++
Здравствуйте уважаемые программисты, будьте добры, уделите пару минут своего времени на этот пост. Уже неделю парюсь с программой, в общем,...

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

Вывод из файл - C++
Ребят помогите написать программу, которая читает данные с файла в двоичном режиме и выводит их на экран.У меня есть программа, которая...

Вывод в файл - C++
#include "stdafx.h" #include <iostream> #include <cmath> #include <string> #include <fstream> double f(double x, double y)...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
16.12.2011, 19:28     [C++] Вывод в файл. #2
сделай струтуру sound
сделай массив структур sound
в структуру sound можно добавить id (можно и просто по индексам)

дальше записываешь в секцию list эти id (используя fprintf() (есть ещё sprintf() ))
потом, перебирая структуры, записываешь данные из каждой структуры
Rolan_Pro
5 / 5 / 1
Регистрация: 20.04.2011
Сообщений: 89
16.12.2011, 19:43  [ТС]     [C++] Вывод в файл. #3
accept, мммм, а пример кода можно?
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
16.12.2011, 20:34     [C++] Вывод в файл. #4
как структуры делать, есть в книгах

Добавлено через 14 минут
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
struct sound {
    char name[100],
         album[100],
         artist[100];
};
 
...
 
    struct sound *slst;
    int n = 10;
 
    slst = (struct sound *) malloc(n * sizeof(struct sound));
    if (slst == NULL) {
        printf("err\n");
        return 1;
    }
 
    strcpy(slst[0].name, "name abcd");
    strcpy(slst[0].album, "album abcd");
    strcpy(slst[0].artist, "artist abcd");
 
...
 
    for (i = 0; i < n; i++) {
        fprintf(ofp, "[sound_%d]\n", i + 1);
        fprintf(ofp, "name = %s\n"
                     "album = %s\n"
                     "artist = %s\n",
                     slst[i].name,
                     slst[i].album,
                     slst[i].artist);
        putc('\n', ofp);
    }
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
16.12.2011, 20:39     [C++] Вывод в файл. #5
я чёт не въехал в чем проблема?

Rolan_Pro, ты написал такой код и не можешь описать простую структуру ? оО
или в чем прикол?
Rolan_Pro
5 / 5 / 1
Регистрация: 20.04.2011
Сообщений: 89
16.12.2011, 20:48  [ТС]     [C++] Вывод в файл. #6
OstapBender, это не моё, в интернетах нашел.
Yandex
Объявления
16.12.2011, 20:48     [C++] Вывод в файл.
Ответ Создать тему
Опции темы

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