#include<stdio.h>
#include<stdlib.h>
int main()
{
char *userInput;
userInput = (char*)malloc(sizeof(userInput));
printf("Commands:\n");
printf("\ta name - adds given name to list\n");
printf("\tr name - removes given name from list\n");
printf("\tp - prints out list\n");
printf("\te - exits\n");
printf("\n\nEnter a command: ");
scanf("%s\n",userInput);
printf("\nThe user input was: %s\n", userInput);
return 0;
}
予編譯代碼「GCC -std = gnu99 -m32 -Wall -g -o名稱列表namelist.c」 每當我運行所有的第一個printf被顯示在可執行文件和我得到提示上的輸入。每當我輸入的輸入,然後按回車,我沒有得到提示未來的printf直到我把另一個觀點。。爲什麼我的程序在使用scanf後暫停?
使用'gdb'調試運行一步程序一步 -
也讀字符串
示例代碼時,我會建議在scanf函數與fgets()。 –
歡迎來到Stack Overflow! [請參閱此討論,爲什麼不在'C'中投射'malloc()'和family的返回值。](http://stackoverflow.com/q/605845/2173917)。 –
提示:'\ n'用於回車。您是否在https://www.tutorialspoint.com/c_standard_library/c_function_scanf.htm中看到任何'\ n'?的[scanf函數] –