piątek, 2 stycznia 2009

Wczytywanie całego wiersza

Pomyślałem, że wielu gimnazjalistom przydałaby się wskazówka, jak wczytywać cały wiersz ze standardowego wejścia. Wiersz może zawierać znaki odstępu (spacje).
Poniższy program wczytuje cały pierwszy wiersz ze standardowego wejścia (aż do napotkania znaku nowej linii). Program zapamiętuję wiersz w tablicy znaków line, a liczbę wczytanych znaków zapamiętuje pod zmienną n (nie wliczając znaku końca wiersza, czyli znaku nowej linii, czyli znaku '\n').

#include<cstdio>
#include<cstdlib>

using namespace std;

char *line;
int n; // długość linii

int main()
{
line=NULL;
size_t mem_size;
n=getline(&line,&mem_size,stdin)-1;

printf("n=%d\n", n);
printf("%s\n", line);

printf("Znak po znaku:\n");
for (int i=0; i<n; i++)
{
printf("line[%2d] = %c (kod ascii=%d)\n", i, line[i], line[i]);
}
return 0;
}
Prześlij komentarz