我想知道如何從長度爲'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 。
那麼,即使在給出string> STRING_SIZE之後,我還可以給str1,str2賦予字符串嗎?
我使用的是GCC編譯器4.3,如果我上面編譯源代碼
$ ./a.out
Enter a string of length < 4: 12345678
123
Enter a string of length < 4:
456
123
456
不明確什麼是你的目標 – qrdl 2009-08-27 12:54:47
使用fflush()在輸入流是用C未定義 – 2009-08-27 15:18:11
謝謝「尼爾·巴特沃思」我永遠不會試圖以這種方式再利用。 – codingfreak 2009-08-28 05:13:23