Возникла проблема с функцией в моей программе C. Программа завершается перед выполнением второй последней функции "printf ()" в функции "encript ()" - PullRequest
0 голосов
/ 03 апреля 2020

Когда я вызываю «encript ()», он работает так, как я хочу, до тех пор, пока второй последний «printf ()» не будет завершен без выполнения каких-либо строк. Я попытался найти похожие вопросы здесь и попытался исправить свой код, но ничего, что я мог найти, казалось, не работало. Я новичок, поэтому, пожалуйста, прости меня, если это простая ошибка.

char encript(int x){
    printf("You selected Encription with the key: %d\n\n", x);  //Tells user the key value they input
    Sleep(1000);
    int msglength = 100;  //Variable for the amount of characters in the messge
    printf("\n\nEnter aproximate number of characters in you message. \nThe number must be at least 1 over the amount of characters in your message: ");
    scanf("%d", msglength);    //assigns user input integer to msglength
    printf("\n\n");
    char message[msglength];    //Creates a character array for the message with a length of "msglength"
    printf("Insert message here: ");    ////THIS LINE DOES NOT SEEM TO EXECUTE. NOR DO THE TWO BELOW IT.
    scanf("%s", message);
    printf("\n\n%s", message);
}

Спасибо!

1 Ответ

0 голосов
/ 03 апреля 2020

обратите внимание на эту строку scanf("%d", msglength);, для сканирования переменных вы должны отправить их адрес на scnaf, поэтому это должно быть scanf("%d", &msglength); (добавить & к scanf)

этой функции должен return символ, если вы просто хотите scan сообщение и print его, вы должны использовать void как этот void encript(int x) также, если вы хотите вернуть сообщение, вы можете использовать char * encript(int x).

...