我想填充一個字符數組,但由於某種原因,每次我點擊輸入它將換行輸入到數組中,這意味着我的數組的一半是LF。我試圖做fflush,但似乎沒有工作。爲什麼我的一半char數組空白?
#include <stdio.h>
#include <stdlib.h>
void bubbleSortChar(char arr[], int size);
//The instruction say to get ch *then* call binarySearchCh, so I think you
//have to add a field.
void binarySearchCh(char arr[], int size,char val,int findall);
main()
{
char chArray[100];
char ch;
int i = -1;
while(++i<100 && scanf("%c",&chArray[i]))
fflush(stdin);
bubbleSortChar(chArray,100);
fflush(stdin);
printf("Enter a char to find.");
scanf("%c",&ch);
binarySearchCh(chArray,100,ch,1);
}
有沒有辦法做到這一點,而無需每次手動刪除空白?我可以這樣做,但似乎fflush應該照顧這一點。這是一個介紹課程,所以它不應該那麼困難。
避免使用'main'。改用int main(void)。 – haccks
用'',你的意思是回車?這聽起來像你的終端正在做舊的CrLf廢話,線緩衝不知道CrLf序列是用來表示行尾。 MacOS(經典),Windows和Linux都有不同的想法[end-of-line](http://en.wikipedia.org/wiki/Newline)應該被指定。 –
如果你不在Windows上,'fflush(stdin)'是未定義的行爲(並且可能不會清除輸入緩衝區)。 –