Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Il programma seguente legge da standard input, con possibilità di redirezione dello standard<br />
input, una matrice avente un numero arbitrario di elementi <strong>per</strong> ciascuna colonna. Il numero di<br />
elementi è comunque limitato a 10, a causa della dichiarazione statica della matrice che deve<br />
contenere i dati. Anche in questo caso, non sono effettuati i controlli necessari a verificare che si<br />
leggano più righe e colonne di quanto sia possibile memorizzare nella matrice, ma le modifiche<br />
da apportare sono semplici e vengono lasciate come esercizio <strong>per</strong> il lettore.<br />
#include <br />
#include <br />
#define MAX_N (10)<br />
int main()<br />
{<br />
char s[100], *s1;<br />
float m[MAX_N][MAX_N];<br />
int i, j;<br />
}<br />
i = 0;<br />
while (fgets(s, sizeof(s), stdin)) {<br />
j = 0;<br />
if ((s1 = strtok(s, " ")) != NULL) {<br />
sscanf(s1, "%f", &m[i][j]);<br />
printf("%f ", m[i][j]);<br />
j++;<br />
} else {<br />
printf("errore nel parsing dei valori\n");<br />
return 1;<br />
}<br />
while ((s1 = strtok(NULL, " ")) != NULL) {<br />
sscanf(s1, "%f", &m[i][j]);<br />
printf("%f ", m[i][j]);<br />
j++;<br />
}<br />
printf("\n");<br />
i++;<br />
}<br />
return 0;<br />
Il programma legge le stringhe dal file di ingresso con l’istruzione fgets, corrispondenti ad una<br />
riga della matrice. Per isolare gli elementi di ciascuna colonna, viene usata la funzione di libreria<br />
strtok. Un token si può definire come una sottostringa della stringa da partizionare, che sia<br />
delimitato da un opportuno delimitatore. Per esempio, la stringa<br />
"10 40 3.5 78 1"<br />
viene suddivisa nei token<br />
"10" "40" "3.5" "78" "1"<br />
123