Programarea Calculatoarelor 2: Laborator 2

Obiective: Citirea datelor de intrare după un format simplu, și caracter cu caracter. Structuri de control repetitive.

Problema Scrieți un program C care citește de la intrare un text presupus a contine un program C și îl afișează după ce a eliminat comentariile (cuprinse intre /* si */, sau de la // la sfarsitul liniei).

Obs.Pentru citirea unui caracter, se poate folosi functia getchar(), care returnează următorul caracter citit de la intrare.
Scrierea unui caracter se poate face cu funcția putchar având ca argument caracterul de scris, sau cu printf și formatul %c.

Sfârșitul intrării e semnalat de funcția getchar() prin returnarea valorii EOF (definită tot în stdio.h). Pentru aceasta, getchar() returnează de fapt un int (care are un domeniu de valori mai mare decât char), iar EOF e în afara domeniului de valori pentru tipul char, pentru a nu fi confundată cu un caracter. Pentru a trata corect cazul EOF, valoarea returnata de getchar() trebuie atribuita tot unei variabile int. Dacă aceasta valoare nu este EOF, ea poate fi apoi utilizată normal ca un caracter (comparată, atribuită, etc.).

Pentru a testa mai usor programul vostru, puteti sa-l rulati din linia de comanda redirectand intrarea astfel incat sa nu vina de la tastatura, ci dintr-un fisier oarecare (de exemplu chiar programul C scris). Pentru aceasta folositi sintaxa: prompt% program < fisier_intrare

Suplimentar: țineți cont de cazul în care caracterele specifice comentariilor apar în interiorul șirurilor de caractere (delimitate prin ghilimele duble " și nu au un rol special în acest caz.


Marius Minea
Last modified: Mon Oct 10 12:46:37 EEST 2005