1 int ch = getchar(); //getchar()函数是键盘输入函数,其功能是从键盘上输入一个字符.简单来说就是getchar()函数在C程序中的功能是接收一个字符 2 putchar(ch); //scanf()函数是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量中 3 printf("%c\n", ch); //scanf()获取数值时,会将一串连续的数字作为一个数值,遇到空格或字符会结束获取 4 float a, b, c; //例:123|123,123 234,123-123,123+234获取的数值分别为123,123和234,123和-123,123和234. 5 scanf("%f%f%f", &a, &b, &c); //由此可见,在输入时,可用[空格],[Tab],[回车],[+],[-]切开数字,而[+],[-]将会作为下一个数值的符号 6 printf("%f\n%f\n%f\n", a, b, c); //当数值类型为浮点型时,[.]也可以作为切断数字的符号,如123.123.123.123,得到的数值为123.123001,0.123000,0.123000 7 //读取到其他符号时,会将符号后连续的部分丢弃 123|123 ---> 123
借用今天在博客园看到的几个代码
1 char a, b, c; 2 printf("please input num a:\n"); 3 scanf("%c", &a); 4 printf("please input num b:\n"); 5 scanf("%c", &b); 6 printf("please input num c:\n"); 7 scanf("%c", &c); 8 printf("一共键入了那些字母?a:%c,b:%c,c:%c", a, b, c); //此处之所以会出现问题,与[回车]符的特点有关,它作为确定按钮来推动程序运行,同时又具有符号的属性
1 char password[20] = {0};//那么我们用scanf()获取字符串的时候是否会获取结束时敲的回车呢? 2 scanf("%s", password); //答案是不会,因此可以见,回车只会被下一个scanf()或getchar()获取.
1 char a, b, c; 2 printf("please input num a:\n"); 3 scanf("%c", &a); 4 int ch1 = getchar(); 5 //putchar(ch1); 6 printf("please input num b:\n"); 7 scanf("%c", &b); 8 int ch2 = getchar(); 9 //putchar(ch2); 10 printf("please input num c:\n"); 11 scanf("%c", &c); 12 printf("%c,%c,%c", a, b, c); //因此在此处,scanf()后加入getchar()函数来接收[回车]
有一点比较有意思
1 int ch1 = getchar(); 2 putchar(ch1); 3 short ch2 = getchar(); 4 putchar(ch2); 5 float ch3 = getchar(); 6 putchar(ch3); 7 double ch4 = getchar(); 8 putchar(ch4); 9 char ch5 = getchar(); 10 putchar(ch5); //存放到ch1~ch5中的是字符对应的ASCII码
另外关于EOF(后续再做了解)
1 int ch = 0; 2 while ((ch = getchar()) != EOF) 3 { 4 putchar(ch); 5 } //getchar() [ctrl+z] EOF(end of file(-1))