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

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

Войти
Регистрация
Восстановить пароль
 
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
#1

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

12.01.2011, 16:11. Просмотров 490. Ответов 2
Метки нет (Все метки)

У меня один вопросик. Я сделал bat файл, который должен считывать из ткст файла пусть к папке, передать ее в качестве аргумента функции main и дальше производится поиск. Программа готова, но как сделать так чтобы из файла в командную строку шло содержимое файла, а не путь ткст файла.

Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 16:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлами. Argv (C++):

Что есть argc и **argv в функции int main(int argc, char **argv)? - C++
Здраствуйте, уважаемые кодеры! Что означает argc и **argv в функции int main(int argc, char **argv), ни как не могу понять эти переменные...

Отличие char *argv[] от char ** argv - C++
Подскажите отличие между int main(int argc, char *argv) { //.... } и int main(int argc, char** argv) { //.... }

Работа с файлами - C++
Помогите написать программу, я даже не знаю к чему взяться! Я с файлами пока не дружу! Спасибо всем кто откликнется) Дано текстовый файл,...

Работа с файлами - C++
Задание звучит так: каждая строка файла содержит такую последовательность символов: a#b, где a,b - целые числа, #-одна из арифметических...

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

Работа с файлами - C++
Дан файл File_in.dat, содержащий 65536 целых чисел. Считать из файла 9 чисел начиная с 150-го. Сформировать из них матрицу A(3х3) и...

2
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
12.01.2011, 16:37 #2
Цитата Сообщение от Озабоченный Посмотреть сообщение
чтобы из файла в командную строку шло содержимое файла, а не путь ткст файла.
а зачем. если программа имеет путь к файлу то может и получить его содержимое
0
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
12.01.2011, 16:42  [ТС] #3
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2011, 16:42
Привет! Вот еще темы с ответами:

Работа с файлами - C++
Помогите исправить ошибки, не знаю, как убрать бесконечный цикл. Дан текстовый файл. В нем записаны слова. Во второй файл записать самое...

Работа с файлами - C++
Даже не знаю как код записать примерно.Помогите ,а то вообще не могу понять и написать : разработать программу для работы с файлами на...

Работа с файлами - C++
Есть следующее задание. Написать программу, которая выводит строку, набранную на клавиатуре, в текстовый файл. Затем: - считывает...

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


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

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

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