0
示例代碼:Fgets沒有得到任何來自標準輸入的輸入或標準輸入不等於輸入?
char cnumb1[2];
NSLog(@"Do you have an account already?(1 for Yes, 0 for no)");
int c;
//Flushes input
while((c = getchar()) != '\n' && c != EOF);
fgets(cnumb1, sizeof cnumb1, stdin);
size_t length = strlen(cnumb1);
if (cnumb1 [length-1] == '\n'){ // In case that the input string has 1 character plus '\n'
cnumb1 [length-1] = '\0';} // Plus '\0', the '\n' isn't added and the if condition is false.
NSString* string = [NSString stringWithUTF8String: cnumb1];
NSLog(@"string:%@", string);
隨着輸入「0」(編輯:出於某種原因,我需要按兩次回車鍵),我得到的輸出「字符串:」 據我所知道的, stdin沒有正確設置。 此外,我開始沒有沖洗線,但這導致了很多問題,因爲我有更多的fgets後來,它的stdin只會是初始輸入,所以我加了這些。
爲什麼不將輸入設置爲標準輸入? 還是完全是另一個問題?
''char cnumb1 [2]; fgets(cnumb1,3,stdin);' - *** ??? *** – 2013-07-21 19:22:39
哦,這是示例代碼中的錯誤,對不起!我會改變這一點。它通常不在代碼中。抱歉! –
如果您接受一些建議:使用'sizeof cnumb1'而不是硬編碼的大小。 – 2013-07-21 19:28:50