колво символом в строке) и саму строку. Я написал вот это:
int main(void) {
int N;
printf("N: ");
scanf_s("%d\n", &N);
char* str = (char*)malloc(N);
printf("Enter a string:");
fgets(str, N, stdin);
printf("\nstring: %s", str);
return 0;
}
Сама проблема в том, что fgets() запускается раньше чем printf(), как фиксить?
Почему вы используете fgets? Это функция для чтения файла. Кроме того вы не освобождаете динамическую память с помощью free (str) в конце
Полагаю ваша проблема скорее всего крутиться вокруг \n в scanf_s, вы очень стремно обявили динамическую память и не высвободили ее ну и зачемто используете fgets.
Должен сделать ещё уточнение, длина строки может быть меньше заданного числа
Что значит "раньше, чем printf"? Какой именно из printf?
"Enter a string" появляется после ввода самой строки
Попробуйте fflush(stdout) после printf.
Стандартный поток ввода это FILE*
Обсуждают сегодня