1、scanf 和 printf
格式化输入输出,需要注意的是scanf双引号里的内容要求对应输入,如下程序中“%d,%d”中的逗号,必须输入。
#include<stdio.h>
main()
{
int price=0, num=0;
int b;
printf("请输入单价和数量:");
scanf("%d,%d", &price,&num);
b=num*price;
printf("总金额为:%d",b);
}
2、fprintf、fwrite
fprintf:将变量中的内容按照指定格式以文本形式打印到对应文件中。
fwrite:将变量中的内容按照指定类型以二进制形式写入对应文件中。
#include <stdio.h>
void main()
{
int num;
char name[5];
FILE *fp;
if ((fp = fopen("t.txt", "w")) == NULL)
printf("cannot open file!\n");
scanf("%d %s",&num,name);
fprintf(fp, "%d %s", num, name);
fclose(fp);
if ((fp = fopen("tt.txt", "w")) == NULL)
printf("cannot open file!\n");
fwrite(&num, sizeof(int), 1, fp); // sizeof(int)指定写入是单元大小,1指定单元个数
fwrite(name, sizeof(char), 5, fp);
fclose(fp);
}
3、getchar与scanf的区别
getchar会读入键盘上的输入,包括空格,代码演示:
#include<stdio.h>
void main()
{
// int a[10];
char a[10];
int i;
for(i=0;i<10;i++)
{
printf("程序已经开始了\n") ;
a[i]=getchar();
// 程序到了上面那句,会在终端等待输入,按回车将终端缓存的数据再输入程序
// getchar() 只取缓存中的一个字符,其余返回缓存,程序进入下一步,
printf("%d\n---\n",a[i]);
// printf("%c\n---\n",a[i]);
// 当i小于10时,满足循环条件,由于stdin中存在缓存的数据,因此getchar()不再等待终端输入
// 当stdin 中数据读干净之后,getchar 等待终端的输入,再执行循环
}
}
scanf不读取空格,代码演示:
#include<stdio.h>
void main()
{
int a[10];
int i;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
// 程序到了上面那句,会在终端等待输入,按回车将终端缓存的数据再输入程序
// scanf() 取缓存中的数字,空格不被读入,其余返回缓存,程序进入下一步,
printf("a[%d]中的存的是%d\n---\n",i,a[i]);
// 当i小于10时,满足循环条件,由于stdin中存在缓存的数据,因此scanf()不再等待终端输入
// 当stdin 中数据读干净之后,scanf 等待终端的输入,再执行循环
}
}
getchar和scanf连用:
#include<stdio.h>
void main()
{
int a[10];
char b[10];
int i;
for(i=0;i<10;i++)
{
printf("程序已经开始了\n") ;
b[i]=getchar();
scanf("%d",&a[i]);
printf("%c\n---\n",b[i]);
printf("%d\n---\n",a[i]);
// 当i小于10时,满足循环条件,由于stdin中存在缓存的数据,因此getchar()不再等待终端输入
// 当stdin 中数据读干净之后,getchar 等待终端的输入,再执行循环
}
}
4、puts
puts:函数用来向标准输出设备屏幕输出字符串并换行。
# include <stdio.h>
int main(void)
{
char name[] = "祖国!";
printf("%s\n", name); //用printf输出
puts(name); //用puts()输出
puts("我爱你!"); //直接输出字符串
return 0;
}
5、gets 和strchr
gets()从标准输入(键盘)读入一行数据,所谓读取一行,就是遇到换行符就返回。gets()函数并不读取换行符'\n'
,它会把换行符替换成空字符'\0'
,作为c语言字符串结束的标志。
#include<stdio.h>
#include<string.h>
int main(){
char string[50];
char *str,ch;
printf("请输入字符串:\n");
gets(string);
printf("请输入想要进行匹配的字符:\n");
scanf("%c",&ch);
str=strchr(string,ch); // 查找指定字符
if(str){
printf("字符%c在字符串中位置是:%d\n",ch,str-string);//对照截图:str为地址,值为4;string也为地址,值为0(数组的变量名代表首地址)
printf("输出从字符%c后的字符串为:%s\n",ch,str);
}else{
printf("没有找到跟字符匹配的字符串!\n");
}
return 0;
}