Когда я использую функцию printf()
, а затем scanf()
один я попал в неприятности. Я пишу ниже кода, и компилятор eclipse говорит, что ошибок нет и нет, но когда я его компилирую, он показывает: insert array dimension insert array elements
. Это не заставляет меня вставлять что-либо, и программа заканчивается. Я также попытался добавить fflush(stdout)
, но ничего не меняется. Что мне делать?printf scanf function and 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' & friends в C. И всегда' free' выделяет память. – Olaf
'scanf' считается злым, потому что он выполняет две задачи и оставляет входной поток в неизвестном состоянии при ошибке. Используйте 'fgets()' и 'sscanf()', если вы хотите убедиться, что знаете, сколько введенных данных было прочитано. – msw