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

где указать путь к файлам - C++

Восстановить пароль Регистрация
 
isakz
2 / 2 / 0
Регистрация: 23.10.2010
Сообщений: 111
06.11.2010, 21:38     где указать путь к файлам #1
Есть программа по коду хоффмана. Нужно чтобы какие-либо данные можно было взять out.txt и уже обработанную при помощи кода хоффмана вернуть в in.txt. Программка написана. не могу вспомнить где писать в свойствах проекта путь к этим txt файлам. Использую Visual C++ 2008. english
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nwq
33 / 33 / 2
Регистрация: 24.09.2010
Сообщений: 140
07.11.2010, 09:52     где указать путь к файлам #2
При чём тут свойства проекта, просто в программе читай из файла и пиши в файл.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
07.11.2010, 12:30     где указать путь к файлам #3
isakz, файл ложи в папку проекта, или в папку с exe-ом.
isakz
2 / 2 / 0
Регистрация: 23.10.2010
Сообщений: 111
07.11.2010, 12:52  [ТС]     где указать путь к файлам #4
файл у меня лежит в папке с exe, но надо прописать еще в свойствах, что я программа берет из файла out данные преобразует их и ложит в файл in.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
07.11.2010, 13:00     где указать путь к файлам #5
isakz, еще раз - ничего в свойствах проекта Вы не пропишите. Логика где брать данные и куда их ложить должна быть описана в самой программе.
isakz
2 / 2 / 0
Регистрация: 23.10.2010
Сообщений: 111
07.11.2010, 13:07  [ТС]     где указать путь к файлам #6
короче
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
// hfmnbin.cpp : Defines the entry point for the console application.
 
//
 
#include "stdafx.h"
#include "string.h"
#include "stdio.h"
#include <stdlib.h>
 
 
 
 
 
typedef struct _UZEL   
    {
        unsigned int znak;
        int cetnost;
        int indexV1;
        int indexV2;
        int indexUzel;
        char kod[256];
        bool pouzito;
    } UZEL;
 
 
 
typedef struct _CETNOSTI
    {
        unsigned int pocet;
        unsigned int index;
    } CETNOSTI;
 
 
 
int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}
 
CETNOSTI seradit (CETNOSTI znak[256])   //bubble sort
    {
bool serazeno = true;
CETNOSTI pomocna[2];
int i;
do
 {
    serazeno = true;
    for(i=0;i<255;i++)
     {
         if (znak[i].pocet < znak[i+1].pocet)
         {
             pomocna[1].pocet = znak[i].pocet;
             pomocna[1].index = znak[i].index;
             znak[i].pocet = znak[i+1].pocet;
             znak[i].index = znak[i+1].index;
             znak[i+1].pocet = pomocna[1].pocet;
             znak[i+1].index = pomocna[1].index;
            serazeno = false;
         }
     }
 }
while (serazeno != true );
        printf("serazeno \n");
        return(znak[1]);        
    }
 
UZEL nejmensiDvojice (UZEL stromP[511], UZEL low[2])
{
//hledani nepouzite dvojice s nejmensi cetnosti
int rozdil[2];
int pocet = 0;
int n;
 
 
//
for (n=0;n<511;n++)
    {
        if ((stromP[n].pouzito == false) && (pocet <=1))    //hledam 2 prvky ktere jeste nejsou pouzity (pocatecni vyber)
            {
             low[pocet].cetnost = stromP[n].cetnost;
             low[pocet].indexUzel = stromP[n].indexUzel;
             low[pocet].indexV1 = stromP[n].indexV1;
             low[pocet].indexV2 = stromP[n].indexV2;
             pocet++;
            }
    }
            for (n=0;n<511;n++)     // projizdim zbytek pole
            { if ((stromP[n].pouzito == false) && (stromP[n].cetnost != 0) && ((low[0].indexUzel != stromP[n].indexUzel) && (low[1].indexUzel != stromP[n].indexUzel))) // podminka jestli z uzlem jiz bylo pocitano ci nikoliv a zaroven se dale nesmeji porovnavat stejne hodnoty (low - pomocne a stromP - vsechny)
                                                                        // vime ze kterych uzlu se daji tvorit jeste dalsi 
                                                                        //plus osetreni zda se prvek vubec v posloupnosti vyskytuje
                { 
                 rozdil[0] = low[0].cetnost - stromP[n].cetnost;        //jak moc se cetnosti lisi
                 rozdil[1] = low[1].cetnost - stromP[n].cetnost;
                 //printf("%i %i \n",rozdil[0],rozdil[1]);
                 if ((rozdil[0] >= 0) || (rozdil[1] >= 0))  //pokud vyjdou oba rozdily <0, tak nemusime dale pocitat jelikoz dana cetnost bude vetsi nez doposud mame
                    { 
                        //hledani kam prvek zaradit
                      if (rozdil[0] >= rozdil[1])   //podle velikosti rozdilu
                        {
                            if ((rozdil[0] == 0) && (rozdil[1] == 0))
                                {
                                if (low[0].indexUzel < low[1].indexUzel) // i podle toho ktery prvek je v poli "dele" /lezaky nahrazujeme
                                  {                                     // tim docilim toho, ze beru opravdu posledni dva nejmensi prvky aktivniho pole cetnosti
                                   low[0].indexUzel = stromP[n].indexUzel;
                                   low[0].cetnost = stromP[n].cetnost;
                                   low[0].indexV1 = stromP[n].indexV1;
                                   low[0].indexV2 = stromP[n].indexV2;
                                  }
                                 else //if (low[0].indexUzel > low[1].indexUzel)
                                  {
                                   low[1].indexUzel = stromP[n].indexUzel;
                                   low[1].cetnost = stromP[n].cetnost;
                                   low[1].indexV1 = stromP[n].indexV1;
                                   low[1].indexV2 = stromP[n].indexV2;
                                  }
                        
                                }
                            if (rozdil[0] != rozdil[1])// || (rozdil[1] != 0))  
                            {
                            low[0].cetnost = stromP[n].cetnost;
                            low[0].indexUzel = stromP[n].indexUzel;
                            low[0].indexV1 = stromP[n].indexV1;
                            low[0].indexV2 = stromP[n].indexV2;
                            }
                        
                            if ((rozdil[0] == rozdil[1]) && (rozdil[0] != 0) && (rozdil[1] != 0))// || (rozdil[1] != 0))    
                            {
                                if (low[0].indexUzel < low[1].indexUzel)
                                 {
                                   low[0].indexUzel = stromP[n].indexUzel;
                                   low[0].cetnost = stromP[n].cetnost;
                                   low[0].indexV1 = stromP[n].indexV1;
                                   low[0].indexV2 = stromP[n].indexV2;
                                  }
                                else 
                                  {
                                   low[1].indexUzel = stromP[n].indexUzel;
                                   low[1].cetnost = stromP[n].cetnost;
                                   low[1].indexV1 = stromP[n].indexV1;
                                   low[1].indexV2 = stromP[n].indexV2;  
                                }
                            }
                        }
                      if (rozdil[0] < rozdil[1])
                        {
                          low[1].cetnost = stromP[n].cetnost;
                          low[1].indexUzel = stromP[n].indexUzel;
                          low[1].indexV1 = stromP[n].indexV1;
                          low[1].indexV2 = stromP[n].indexV2;
                      }
                    }
                }           
            }
 
    return(low[0]);
    return(low[1]);
}
 
 
void generateCodes(unsigned int position, int idx, char code[256], UZEL strom[])
{   //predavam aktualni kod ... ukazatel kde v kodu mam pokracovat .. pozici uzlu ktery budu kodovat
    for (unsigned int i = 0; i < position; i++)
    {
        strom[idx].kod[i] = code[i];        
    }       
    if (strom[idx].indexV1 > -1)
    {       
        code[position] = '0';       
        generateCodes(position + 1, strom[idx].indexV1, code, strom);
    }
    if (strom[idx].indexV2 > -1)
    {       
        code[position] = '1';       
        generateCodes(position + 1, strom[idx].indexV2, code, strom);
    }
}
 
 
CETNOSTI pocitejCetnosti(FILE *f1,CETNOSTI znaky[256])
{   int i;
    int znak;
    for(i=0;i<=255;i++) 
    {
     znaky[i].pocet = 0;
     znaky[i].index = i;
    }
    while ((znak = fgetc(f1)) != EOF)       //255 unsigned EOF
        {
            fputc(znak,stdout);         //vypis na obrazovku
            printf(" %i ",znak);
            znaky[znak].pocet=znaky[znak].pocet++;  //nacitani cetnosti jednotlivych znaku
            printf("%i \n",znaky[znak].pocet);
 
        }
    return(znaky[0]);
}
 
void poradiVetvi (int i,UZEL lowa[2],UZEL strom[511])
{
if (lowa[0].cetnost == lowa[1].cetnost)
        {
            if (lowa[0].indexUzel > lowa[1].indexUzel)
            {
                strom[i].indexV1 = lowa[1].indexUzel;
                strom[i].indexV2 = lowa[0].indexUzel;
            }
            else 
            {
                strom[i].indexV1 = lowa[0].indexUzel;
                strom[i].indexV2 = lowa[1].indexUzel;
            }
        }
 
    if (lowa[0].cetnost > lowa[1].cetnost)
    {
            strom[i].indexV1 = lowa[0].indexUzel;
            strom[i].indexV2 = lowa[1].indexUzel;
    }
 
    if (lowa[0].cetnost < lowa[1].cetnost)
    {
            strom[i].indexV1 = lowa[1].indexUzel;
            strom[i].indexV2 = lowa[0].indexUzel;
    }
}
 
/*void kodujZnak(FILE *f1, FILE *f2, UZEL strom[256])
{
int i;
char znak;
fseek(f1, 0, SEEK_SET); //posun na zacatek souboru
while ((znak = fgetc(f1)) != EOF)   
    {
        for (i=0;i<256;i++)
         {
            if (strom[i].znak == znak)
                fprintf(f2,"%s",strom[i].kod);
         }
    }
}*/
 
unsigned char *prevod1(char b){
    unsigned char ret[9];
    int posun=1;
    for (int i=0;i<8;i++){
        int pom = posun << (7-i);       // posun 1 o 7-i mist vlevo nove vznikla mista jsou zaplnena nulami
        ret[i]= (b & pom) !=0 ? 49: 48;     //podminecne prirazeni
    }
    ret[8]=0;
    return ret;
}
 
unsigned char prevod2(unsigned char bi[9]){
    char ret[9];
    unsigned char w=0;
    for (int i=0;i<8;i++){
        if (bi[i]==48) w |=0 << (7-i);
        else w |=1 << (7-i);
    }
    
    return w;
}
 
int main(int argc, char* argv[])
{
    FILE    *f1,*f2;
    char    *path1,*path2;
    int     i;
    int     znak;
    int     pocetZnaku = 0;
    char    *kodovani,*koduj,*dekoduj;
    int     celkovyPocet = 0;
    UZEL    strom[511]; 
 
    koduj = "k";
    dekoduj = "d";
 
 
if (argc != 4)
    {
        printf("Spatne zadane vstupni parametry - vstupni soubor, vystupni soubor, smer\n");        
        getchar();
        return 0;
    }       
else
 
    if (argv[3] != NULL)            //argv[1] , path1 vstupni soubor
        {
            
            kodovani = argv[3];
        }
else printf("\n Nezadanej typ kodovani \n");
 
if (strcmp(kodovani,koduj)==0)
{
    printf("Koduji... \n");
    if (argv[1] != NULL)            //argv[1] , path1 vstupni soubor
        {
            path1 = argv[1];
            printf("%s \n",path1);  //%s vypis stringu (path1)
            f1 = fopen(path1,"rb");
                if (f1 == NULL) 
                 {
                    printf("\n soubor nenalezen");
                    getchar();
                 }
    
    
        }
    else printf("\n Neni zadana cesta ke vstupnimu souoboru");
 
 
 
    if (argv[2] != NULL)            //argv[1] , path1 vstupni soubor
        {
            path2 = argv[2];
            printf("%s \n",path2);
            f2 = fopen(path2,"wb");
                if (f2 == NULL) 
                 {
                    printf("soubor nenalezen \n");
                    getchar();
                 }
        }
    else printf("Neni zadana cesta k vystupnimu souoboru \n");
 
CETNOSTI znaky[256];
 
pocitejCetnosti(f1,znaky);
 
printf("cetnost znaku A je: %i \n",znaky[65].pocet);   //%i vypis integeru cetnost
                                                    // %c prevod ascii kodu na znak
getchar();
 
seradit(znaky);
 
 
int n;
 
for (n=0; n<256; n++)
    if (znaky[n].pocet != 0) celkovyPocet++;    // pocitani druhu znaku
 
printf("Cetnosti \n");
 
for (n=0; n<celkovyPocet; n++)
    {
        printf ("%c  ... %i",znaky[n].index,znaky[n].pocet); //vypis zastoupeni jednotlivych znaku
    //inicializace
       strom[n].cetnost = znaky[n].pocet;
       pocetZnaku = pocetZnaku + znaky[n].pocet;
       strom[n].znak = znaky[n].index;
       strom[n].pouzito = false;    
       strom[n].indexUzel = n;
       strom[n].indexV1 = -1;
       strom[n].indexV2 = -1;
       printf(" ... %i \n",strom[n].indexUzel);
    }
for (n=celkovyPocet; n<511; n++)
    {
        strom[n].pouzito = false;
        strom[n].cetnost = 0;
    }
printf("nejvetsi cetnost ma znak %c\n",strom[0].znak);
 
printf("celkovy pocet znaku je %i a cetnost je %i \n",celkovyPocet,pocetZnaku);
 
i = celkovyPocet - 1;
UZEL lowa[2];
getchar();
//tvorba novych uzlu
do
{
nejmensiDvojice(strom,lowa);    //hledam nepouzite dvojice s nejmensi cetnosti
    i++;
    strom[i].indexUzel = i;
    strom[i].cetnost = lowa[0].cetnost + lowa[1].cetnost;   //cetnost nove vznikleho uzlu
    
//urceni poradi vetvi (V1 ... vyssi vetev)  
    poradiVetvi(i,lowa,strom);
 
    strom[lowa[0].indexUzel].pouzito = true;
    strom[lowa[1].indexUzel].pouzito = true;
 
    // tisk indexu a cetnosti nalezene nejmensi dvojice co se tyce cetnosti
    // printf("cetnost ..  index -- cetnost ..  index\n");
    printf("\n dvojice:  cetnost %i .. index %i -- cetnost %i .. index %i \n",lowa[0].cetnost,lowa[0].indexUzel,lowa[1].cetnost,lowa[1].indexUzel);
 
 
}while (strom[i].cetnost < pocetZnaku);
 
    
int posledniUzel;
posledniUzel = 2*celkovyPocet-1;
char code[256]; 
for (i=0;i<256;i++)
    {
        code[i] = 0;  // i -> 0
    }
 
//generace kodu pro vsechny uzle a znaky
if (pocetZnaku == 1)        //osetreni kdyz je pritomen pouze jeden znak v souboru
    {
        strom[0].kod[0] = '0';
        for(i=1;i<256;i++)
            strom[0].kod[i] = -52;
        printf("pocetZnaku = 1");   
    }
else
    generateCodes(0, posledniUzel - 1, code, strom);
 
for (i=0;i<=(2*celkovyPocet)-2;i++)
    {
        printf("index- %i V1- %i V2- %i code- %s \n",strom[i].indexUzel,strom[i].indexV1,strom[i].indexV2,strom[i].kod);
    }
 
 
//zapis tabulky kodu do souboru
fwrite(&celkovyPocet,sizeof(celkovyPocet),1,f2);    //Celkovy pocet
fwrite(&pocetZnaku,sizeof(pocetZnaku),1,f2);        //pocet znaku (potrebujeme k osetreni posledniho neceleho kodovaneho bytu)
 
for (i=0;i<celkovyPocet;i++)
{
    fwrite(&strom[i].znak,sizeof(strom[i].znak),1,f2);  //Zapsani znaku do tabulky
    fwrite(&strom[i].kod,sizeof(strom[i].kod),1,f2);    //Zapsani kodu znaku do tabulky
}
 
//hledani znaku a jejich kodovani
unsigned char s;
unsigned char buffer[9];
size_t c;
unsigned char t;
unsigned char pozice; 
unsigned char sizeOutput;
pozice = 0;
int sizeCode = 0;
int g=0;
 
rewind(f1);
        while ((c = fread(&s, sizeof(s), 1, f1)) != 0)
        {   
            for (n = 0; n < celkovyPocet; n++)
            {
                if (strom[n].znak == s) 
                    g = n;      //urceni znaku v nasem stromu
            }
            for (i = 0; i < 256; i++)
            {
                if (strom[g].kod[i] == -52)
                {
                    break;      //preruseni nacitani kodu kdyz uz dale nemame kod definovany
                }
                else
                if (pozice != 8)
                {
                    buffer[pozice]=strom[g].kod[i]; //pokud jsme nenaplnili jeste buffer (8znaku), tak nacitam kod
                    pozice++;       //posunu na nasledujici pozici
                }
                else
                {
                    t = prevod2(buffer);        // po naplneni bufferu prevedu tento retezec buffer na jeden znak - komprese
                    pozice = 0;             // nuluji pozici
                    for (int r = 0;r<9;r++)
                        buffer[r]='0';
                    buffer[pozice]=strom[g].kod[i]; // zapisu nacteny znak na prni pozici bufferu
                    pozice++;                   //posunu na dalsi pozici aby nedoslo k prepsani nulteho bitu
                    fwrite(&t,sizeof(t),1,f2);  //zapisu kodovany znak
                    
                    sizeCode++;
                }
            }
            }
        
        t = prevod2(buffer);        //vypis posledniho neceleho bytu
        fwrite(&t,sizeof(t),1,f2);
        sizeCode++;
 
 printf ("\nVelikost souboru bez kodovaci tabulky pred a po kompresi: %iB %iB",pocetZnaku,sizeCode);
 
 
 fclose(f1);  
 fclose(f2);
}
 
//dekodovani
 
if (strcmp(kodovani,dekoduj) == 0)  //dekoduj konstanta a kodovani se nacita z parametru .. strcmp porovna retezce
{
int m;
int n;
 
 
printf("Dekoduji ... \n");
if (argv[1] != NULL)            //argv[1] , path1 vstupni soubor
        {
            path1 = argv[1];
            printf("vstupni soubor: %s \n",path1);  //%s vypis retezu (path1)
            f1 = fopen(path1,"rb");
                if (f1 == NULL) 
                 {
                    printf("\n soubor nenalezen");
                    getchar();
                 }
    
    
        }
    else printf("\n Neni zadana cesta ke vstupnimu souoboru");
 
 
 
    if (argv[2] != NULL)            //argv[2] , path2 vystupni soubor
        {
            path2 = argv[2];
            printf("vystupni soubor: %s \n",path2);
            f2 = fopen(path2,"wb");
                if (f2 == NULL) 
                 {
                    printf("soubor nenalezen \n");
                    getchar();
                 }
    
    
        }
    else printf("Neni zadana cesta k vystupnimu souoboru \n");
 
 
i = 0;
int celkPoc;
int rovno = 1;
int pocetZn;
 
size_t c;
 
c = fread(&celkovyPocet,sizeof(celkovyPocet),1,f1);     //nacteni poctu druhu znaku
c = fread(&pocetZnaku,sizeof(pocetZnaku),1,f1);         //nacteni celkoveho poctu znaku
 
//cteni znaku a prislusneho kodu
for(n=0;n<celkovyPocet;n++)
{
    c = fread(&strom[n].znak,sizeof(strom[n].znak),1,f1);       // nacteni znaku
    c = fread(&strom[n].kod,sizeof(strom[n].kod),1,f1);         // nacteni jeho kodu
}
 
char retezec[256];
 
 
 
//spojovani retezce delku
//pomocna promenna retezec o delce 256 .. shoda jako maximalni delka kodu
//nacitame do kodu bit po bitu z dekodovane promenne bit(ze znaku vytvoren retezec 1 a 0) a v kazdem kroku porovnavame
//jakmile nalezneme prvni shodu tak vytiskneme do souboru f2 prislusny znak a vynulujeme retezec a index nastavime na zacatek retezce
//celou akci opakujeme dokud nebude konec souboru
 
unsigned char s;
unsigned char *bi2;
celkPoc = 0;
unsigned char bi3[1];
rovno = 0;
int idx = 0;
i=0;
pocetZn = 0;
 
while ((c = fread(&s, sizeof(s), 1, f1)) != 0)
{
  for(i=0;i<8;i++)
    {   bi2 = prevod1(s);
        retezec[idx]=bi2[i];
            for(n=0;n<celkovyPocet;n++)
                {
                    for(int k=0;k<256;k++)                  //porovnani shody dvou retezcu = 0 kdyz shoda
                    { 
                        if (retezec[k] != strom[n].kod[k])
                            rovno = -1;                 //kdyz se nerovnaji tak -1
                    }
                    
                    if((rovno == 0) && (pocetZn != pocetZnaku))     // kdyz nalezna shoda retezcu a celkovy pocet zapsanych znaku bude mensi nez pocet znaku v kodovanem souboru
                            {                                       // osetreni posledniho neceleho bytu v kodovani
                                fwrite(&strom[n].znak,1,1,f2);
                                pocetZn++;
                                rovno = 0;
                                for (int j = 0; j<256; j++)         //nulovani retezce
                                    retezec[j]=-52;
                                idx = -1;                           //index v retezci nastaven opet na 1
                            }
            rovno = 0;
            }
        idx++;
    }
}
fclose(f1);
fclose(f2);
}
 
 
printf("\n Done \n");
 
getchar();
 
 
return 0;
}
Добавлено через 57 секунд
хоть и не на русском, думаю хорошый программист разберется.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
07.11.2010, 13:09     где указать путь к файлам #7
isakz, запускайте программу из командной строки, указав первым аргументом имя входного файла, а имя выходного вторым.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2010, 13:13     где указать путь к файлам
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
isakz
2 / 2 / 0
Регистрация: 23.10.2010
Сообщений: 111
07.11.2010, 13:13  [ТС]     где указать путь к файлам #8
сорри не приходилось с командной строкой работать. можете описать как это...
Yandex
Объявления
07.11.2010, 13:13     где указать путь к файлам
Ответ Создать тему
Опции темы

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