колво символом в строке) и саму строку. Я написал вот это:
                  
                  
                  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*
Обсуждают сегодня