С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка массива по делимости элементов нацело http://www.cyberforum.ru/cpp-beginners/thread227791.html
Дан массив целых чисел. Сформировать второй массив, включив в него все элементы первого, которые делятся нацело на 5. заранее спасибо за любую помощь! :-[
C++ Определить является ли последовательность строго убывающей В общем,мы на грани вылета с универа,не сделаем задачи-привет,армия! Кто может,помогите разобраться с программированием..заранее очень благодарны!!! вот задачи: 10 и 13 это варианты наши ... http://www.cyberforum.ru/cpp-beginners/thread227788.html
C++ Прога по Структурам
Ни могу понять как в массив забить рациональное число((( Вот задание: Ввести структуру (с полями числитель и знаменатель) для описания понятия рациональное число. Составить и протестировать...
библиотеки в си++ C++
помогите с библиотекой для распознавания русского алфавита
C++ Одномерный массив http://www.cyberforum.ru/cpp-beginners/thread227745.html
Найти самую длинную строчку последовательности элементов одномерного массива,образующую геометрическую прогрессию.
C++ Функции, исправить ошибки Дано N десятоков целых чисел. Определить, сколько из них могут составлять геометрическую прогрессию. Проверку оформить в виде функции. Вот у меня получился такой код. Я в этой теме не сильно... подробнее

Показать сообщение отдельно
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
12.01.2011, 16:42  [ТС]
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#include <iostream>
#include <windows.h>
#include <cstdio>
#include <fstream>
#include <ostream>
#include <string>
#include <conio.h>
using namespace std;
 
bool differentLineClose(FILE *streamin, FILE *strenout, int count);
void RecursiveFileSearch (char *filename);
 
bool CheckTest (char *filename)
{
    cout << filename;
    RecursiveFileSearch (filename);
 
    const char *fileNameFirst = "test_real1.txt";
    const char *fileNameSecond = "test_out.txt";
                
    FILE *fileInput;
    FILE *fileOutput;
 
    fileInput  = fopen(fileNameFirst, "rt");
    fileOutput = fopen(fileNameSecond, "rt");
 
    if (fileInput == NULL)
    {
        cout<<"Cannot open file.\n";
        return false;
    }
 
    else if (fileOutput == NULL)
    {
        cout<<"Cannot open second.\n";
        return false;
    }
 
    int countLine = 1;
    char lineInput[255], lineOutput[255];
    for (;;)
    {
        fgets(lineInput, 255, fileInput);
        fgets(lineOutput, 255, fileOutput);
        if (strcmp(lineInput,lineOutput))
        {
            if (feof(fileOutput) && feof(fileInput))
            {
                differentLineClose(fileInput, fileOutput, countLine);
                return false;
                } 
                else if (!feof(fileOutput) && !feof(fileInput))
                {
                    differentLineClose(fileInput, fileOutput, countLine);
                    return false;
                }
                        
            }
               
            if (feof(fileOutput))
            {
                if (feof(fileInput))
                {
                    differentLineClose(fileInput, fileOutput, 0);
                    return true;
                }
 
                differentLineClose(fileInput, fileOutput, ++countLine);
                return false;
            }
                
            else if (feof(fileInput))
            {
                differentLineClose(fileInput, fileOutput, ++countLine);
                return false;
            }
 
            ++countLine;
    }
}
void RecursiveFileSearch(char *folder_name)
{
    //создаем выходной файл
    char buf[MAX_PATH] = {0};
    strncpy(buf, "test" , strlen("test") );
    strcat(buf, "_out.txt");
    ofstream file_out(buf);
 
    //структура для хранения найденного файла
    WIN32_FIND_DATA file_find_data;
    HANDLE file_find_handle;
    
    file_out << folder_name << endl;
 
    //выделяем память под найденную строку
    char *find_string = new char[strlen(folder_name)+5];
 
    //копируем folder_name в find_string
    strcpy(find_string, folder_name);
    strcat(find_string, "\\*.*");   
 
 
    //если find_string и file_find_data не равны, возвращается INVALID_HANDLE_VALUE
    file_find_handle = FindFirstFile(find_string, &file_find_data);
    if (file_find_handle != INVALID_HANDLE_VALUE) 
    {
        do
        {
            //если директория
            if (file_find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
            {
                //если файл найден (strcmp возвращает 0) идем дальше
                if ((strcmp(file_find_data.cFileName, ".") == 0) ||
                (strcmp(file_find_data.cFileName, "..") == 0))
                {
                    continue;
                }
 
                char *find_subdir = new char[strlen(folder_name)+strlen(file_find_data.cFileName)+5];
 
                strcpy(find_subdir, folder_name);
                strcat(find_subdir, "\\");
                strcat(find_subdir, file_find_data.cFileName);
                RecursiveFileSearch(find_subdir);
                delete[] find_subdir;
            } 
            else 
            {
                file_out << file_find_data.cFileName << endl;
            }
        } 
        /// продолжаем поиск
        /// file_find_handle возвращен из предыдущего вызова FindFirst
        while (FindNextFile(file_find_handle, &file_find_data));
    }
 
    delete[] find_string;
}
    
int main(int argc, char *argv[])
{   
 
 
    cout << boolalpha << CheckTest(argv[1]);
    
    system("PAUSE");
    return 0;
}
 
//закрываем файлы и печатаем есть ли различия в файлах или нет
bool differentLineClose(FILE *streamin, FILE *streamout, int count)
{
    if (count == 0)
    {
        return true;
    }
 
    else
    {
        return false;
    }
    fclose(streamin);
    fclose(streamout);
    system("PAUSE");
}

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