Differences

This shows you the differences between two versions of the page.

Link to this comparison view

programare-cc:laboratoare:11 [2023/12/20 12:49]
mihai.nan [Laboratorul 11. Fişiere text. Argumente în linia de comandă]
programare-cc:laboratoare:11 [2023/12/20 14:41] (current)
mihai.nan [Problema 1 (Rezolvata)]
Line 1: Line 1:
 ===== Laboratorul 11. Fişiere text. Argumente în linia de comandă ===== ===== Laboratorul 11. Fişiere text. Argumente în linia de comandă =====
 +
 +
 +În acest laborator veţi învăţa să:
 +  * Citiţi şi scrieţi date din fişiere text.
 +  * Trimiteţi şi folosiţi argumente în linia de comandă.
  
 ====Fişiere text==== ====Fişiere text====
Line 24: Line 29:
   * ''​int fscanf ( FILE *f, const char * format, ... )''​   * ''​int fscanf ( FILE *f, const char * format, ... )''​
   * ''​int fprintf ( FILE *f, const char * format, ... )''​   * ''​int fprintf ( FILE *f, const char * format, ... )''​
 +
 +====Argumente în linia de comandă====
 +Pentru a specifica argumente în linia de comandă, antetul funcţiei main va trebui să fie de forma:
 +<code c>  int main ( int argc, char *argv[] ); </​code>​
 +**argc** reprezintă numărul de argumente, iar **argv** vectorul de pointeri la argumente (şiruri de caractere). Primul argument argv[ 0 ] este
 +întotdeauna **numele executabilului**.
 +Pentru a seta argumentele din CodeBlocks va trebui să adăugaţi fişierul sursă la un proiect şi apoi să selectaţi: Project ­> Set programs'​
 +arguments.
  
  
-În acest laborator veţi învăţa să: 
-  * Citiţi şi scrieţi date din fişiere text. 
-  * Trimiteţi şi folosiţi argumente în linia de comandă. 
  
 ==== Problema 1 (Rezolvata) ==== ==== Problema 1 (Rezolvata) ====
Line 51: Line 61:
     ​     ​
     pFile = fopen("​myfile.txt"​ , "​r"​);​     pFile = fopen("​myfile.txt"​ , "​r"​);​
-    if (pFile == NULL)+    if (pFile == NULL) {
         printf("​Nu s-a putut deschide fisierul"​);​         printf("​Nu s-a putut deschide fisierul"​);​
 +        return 1;
 +    }
     ​     ​
     while (fgets(buffer,​ BUFMAX, pFile) != NULL) {     while (fgets(buffer,​ BUFMAX, pFile) != NULL) {
- printf("​%s",​ buffer);+        ​printf("​%s",​ buffer);
     }     }
- fclose(pFile);​+    ​fclose(pFile)
 +    return 0;
 } }
 </​code>​ </​code>​
 +
 +
 ==== Problema 2 (Rezolvata) ==== ==== Problema 2 (Rezolvata) ====
 Scrieţi un program pentru concatenarea mai multor fişiere text într­un fişier destinaţie. Programul va primi numele fişierelor ca Scrieţi un program pentru concatenarea mai multor fişiere text într­un fişier destinaţie. Programul va primi numele fişierelor ca
-argumente în linia de comandă, în următoarea ordine: destinatie ​sursa1 sursa2 ... sursan.+argumente în linia de comandă, în următoarea ordine: destinatie ​$sursa_1, sursa_2 \dots sursa_n$.
  
 ==Date de intrare== ==Date de intrare==
-Fişierele de intrare ​sursa1 sursa2 ... sursan.+Fişierele de intrare ​$sursa_1, sursa_2 \dots sursa_n$.
 ==Date de ieşire== ==Date de ieşire==
 Fişierele de intrare concatenate în fişierul destinaţie. Fişierele de intrare concatenate în fişierul destinaţie.
Line 114: Line 129:
 ==Exemplu== ==Exemplu==
 Pentru a căuta în fişierul input.txt stringul vacanta: Pentru a căuta în fişierul input.txt stringul vacanta:
-./​executabil input.txt vacanta+ 
 +**./​executabil input.txt vacanta**
  
 ^ input.txt ^ stdout ​   ^ ^ input.txt ^ stdout ​   ^
Line 141: Line 157:
 ==Exemplu== ==Exemplu==
 Dacă, căutăm în fişierul input.txt stringul vacanta: Dacă, căutăm în fişierul input.txt stringul vacanta:
-./​executabil ­c ­i ­n input.txt vacanta+ 
 +**./​executabil ­c ­i ­n input.txt vacanta**
  
 ^ input.txt ^ stdout ​   ^ ^ input.txt ^ stdout ​   ^
Line 163: Line 180:
 ==Exemplu== ==Exemplu==
 Aplicăm algoritmul de codare pe fişierul input.txt şi vom obţine un fişier output.txt. Aplicăm algoritmul de codare pe fişierul input.txt şi vom obţine un fişier output.txt.
-./​executabil tabela_de_codare.in input.txt output.txt+ 
 + 
 +**./​executabil tabela_de_codare.in input.txt output.txt**
  
 ^ Intrare (input.txt ) ^ Ieşire (output.txt) ^ ^ Intrare (input.txt ) ^ Ieşire (output.txt) ^
programare-cc/laboratoare/11.1703069386.txt.gz · Last modified: 2023/12/20 12:49 by mihai.nan
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0