Я хотел бы знать, как читать строку из стандартного ввода длины 'n'. Я попытался с помощью функции fgets (), но у меня возникла проблема, если я отправил строку длины> n
#include <stdio.h>
int STRING_SIZE=4;
int getString(char *);
int getString(char *str)
{
printf("\nEnter a string of length < %d: ", STRING_SIZE);
fgets(str, STRING_SIZE, stdin);
fflush(stdin);
printf("\n\n%s\n\n",str);
return 0;
}
int main(void)
{
char str1[1024];
char str2[1024];
getString(str1);
getString(str2);
fprintf(stdout, "%s\n", str1);
fprintf(stdout, "%s\n", str2);
return 0;
}
если я введу строку размером более 4 для str1, то оставшиеся символы будут автоматически назначены для str2.
Так есть ли способ, которым я могу дать строки как str1, str2 даже после того, как дал строку> STRING_SIZE?
Я использую компилятор GCC 4.3, и если я компилирую выше исходного кода
$ ./a.out
Enter a string of length < 4: 12345678
123
Enter a string of length < 4:
456
123
456