Skoro C, to nie <cstdio>, tylko <stdio.h> - Twój kod nawet się nie kompiluje. Skoro koniec linii, to nie EOF, a '\n'. I jeśli wczytujesz do inta, to "%d", nie "%c" (choć podejrzewam, że można to wykorzystać). Spróbuj wczytywać znak następujący po liczbie, po ostatniej powinien być znak nowej linii. Ułożyłem coś takiego:
Kod: Zaznacz cały
#include <stdio.h>
int main(void)
{
int a = 0;
int s = 0;
char c = '\0';
do {
scanf("%d%c", &a, &c);
s += a;
} while (c != '\n');
printf("%d\n", s);
return 0;
}
...i zdaje się, że potrafi wczytać liczby wg tego, co podałeś. Psuje się, gdy dodasz np. spację po ostatniej liczbie, ale to można łatwo rozwiązać. Innym pomysłem może być skorzystanie z funkcji
Kod: Zaznacz cały
http://crasseux.com/books/ctutorial/getline.html
, a następnie przetworzenie wczytanego łańcucha znaków. Poza tym, możesz też wczytywać po znaku i sprawdzać, czy otrzymałeś cyfrę, znak nowej linii czy inny znak.