Я хотел бы знать, как читать строку из стандартного ввода длины '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
Не ясно, что ваша цель – qrdl
используя fflush() на входе потоков определено в C – 2009-08-27 15:18:11
Благодаря «Нил Баттерворта» Я никогда не буду пытаться использовать таким образом снова. – codingfreak