Witam,
Próbuje zrobić zadanie, w którym mam do napisania funkcję pobierającą z klawiatury najbliższe n znaków, włącznie z odstępami, tabulatorami i znakami nowej linii.
Problem polega na tym, że nie wiem jak zrobić, aby program po wpisaniu maksymalnej ilości znaków zaprzestał ich pobierania bez przechodzenia do nowej linii (jeśli wklepana została maksymalna ilość znaków).
Czy powinienem użyć w takim wypadku gets() / fgets() operując na łańcuchach?
Poniżej moja funkcja.
#include <stdio.h>
#include <ctype.h>
#define MAX 10
int main()
{
char ch;
int n;
while (n != MAX + 1){
if (ch = getchar() || isspace(ch))
n++;
}
return 0;
}
if((ch = getchar()), isspace(ch))
. Jeśli tam nie ma UB z kolejnością dostępu (sequence points / sequenced after/before) to wydaje się być ok - nawet jeśli zapis nietypowy.if(isspace(ch = getchar())
by było czytelniejsze?