We can use the scanf() function to get user input in C. Here’s a quick implementation of scanf():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <stdio.h> char input[100]; char *output = "Thank you for your message!"; int main(int argc, const char * argv[]) { // ask user for some input puts("Tell me something nice:"); // grab input from keyboard via scanf() // don't use gets() for this, apparently it's totally evil scanf("%s", input); // say goodbye printf("%s\n\n", output); return 0; } |
scanf() will wait for the user to press Enter before giving its returned value back to our app. We must define a variable to hold its output. We can even define multiple variables, each of which will be populated with whatever is being typed in until Enter is pressed. Consider this:
1 2 |
char input1[100], input2[100], input3[100]; scanf("%s, %s, %s", input1, input2, input3); |
Here we wait for three string items to be added (numbers entered will be interpreted as strings). To grab a numeric value from the keyboard, we cam use %d like so (d as in decimal, variable defined as int):
1 2 |
int number; scanf("%d", &number); |
Note the ampersand in front of our variable, without which scanf would populate a pointer. We can also mix and match keyboard input like this:
1 2 3 |
char string[100]; int number; scanf("%s, %d", string, &number); |
Demo Project
You’ll find a quick demo project on GitHub, which also serves as a template on how to setup Xcode to open Terminal and allow for keyboard input when the project is run.