當我使用printf()
函數,然後scanf()
我遇到了麻煩。 我在代碼的下面寫道,eclipse編譯器說沒有錯誤也沒有警告,但是當我編譯它時,它顯示:insert array dimension insert array elements
。它不會讓我插入任何東西,程序結束。 我也嘗試添加fflush(stdout)
但沒有任何更改。 我能做什麼?printf scanf函數和fflush()
int main(void) {
int *V;
int i;
int N;
printf("insert array dimension");
fflush(stdout);
scanf("%n", &N);
V=(int*)malloc(sizeof(int)*N);
if(V==NULL){
printf("\n error");
fflush(stdout);
return 0;
}
printf("\ninsert array elements");
fflush(stdout);
return EXIT_SUCCESS;
}
爲什麼你用'%n'指定符來表示'int'? – haccks
不要將'malloc'和朋友的結果放在C中,並且總是用'free'分配內存。 – Olaf
'scanf'被認爲是邪惡的,因爲它執行兩項任務,並在出錯時將輸入流保留在未知狀態。如果你想確保你知道有多少輸入被讀取,使用'fgets()'和'sscanf()'。 – msw