我们可以通过多种方式从键盘读取输入。
以下是从键盘读取输入的函数列表:
getchar() gets() scanf()
getchar()函数用于从键盘获取一个字符,putchar()函数用于向Terminal打印一个字符。
#include <stdio.h>
void getchar_putchar();
int main() {
getchar_putchar();
return 0;
}
void getchar_putchar(){
int c;
printf ("Type a character: ");
c = getchar();
printf ("char: %c\n",c);
putchar(c);
printf("\n");
}
上面的代码生成以下结果。
gets()用于读取文本。如果您输入换行符(ENTER键),将停止阅读。
我们可以使用fgets()来读取长度限制的文本。
#include <stdio.h>
void gets_puts();
int main() {
gets_puts();
return 0;
}
void gets_puts(){
char name[256];
printf ("Your name: ");
gets (name);
printf ("name: %s\n",name);
puts(name);
name[0] = "\0"; // clear
printf ("Your name: ");
fgets(name,256,stdin);
printf ("name: %s\n",name);
puts(name);
}
上面的代码生成以下结果。
另一种方法,我们可以使用scanf()函数来读取文本。
#include <stdio.h>
void scanf_demo();
int main() {
scanf_demo();
return 0;
}
void scanf_demo(){
int num;
char c;
char city[15];
float dec;
printf("Please enter an integer value: ");
scanf("%d", &num );
// %c ignores space characters
printf("Please enter a character: ");
scanf(" %c", &c );
printf("Please enter a city name (no space): ");
scanf("%s", city );
printf("Please enter a decimal value: ");
scanf("%f", &dec );
printf("\n-----result-------\n");
printf("number = %d\n", num );
printf("character = %c\n", c );
printf("city name = %s\n", city );
printf("decimal number = %f\n", dec );
}
上面的代码生成以下结果。
我们可以从我们的程序中读取参数及其长度。此信息已传递给main()函数。
#include <stdio.h>
int main(int argc, const char* argv[]) {
int i;
printf("total argument: %d\n",argc-1);
if(argc>1){
for(i=1;i<argc;i++){
printf("%s\n",argv[i]);
}
}
return 0;
}
上面的代码生成以下结果。
下表列出了使用scanf()读取数据的格式说明符
Action | 所需的控制字符串 |
---|---|
读取short类型的值 | %hd |
读取int类型的值 | %d |
读取long类型的值 | %ld |
读取float类型的值 | %f 或 %e |
读取double类型的值 | %lf 或 %le |
在%ld和%lf格式说明符中,l是小写的。