十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
fread(n,4,1,fp); //这个是对的,但要在32位环境下,通用的方式可以这样
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了甘谷免费建站欢迎大家使用!
fread(n,sizeof(n), 1, fp);
fprintf(fp,"%d",n);(这里要不要地址符呀)
不要
如果是数组char str[20]:
fread(str,4,1,fp); //如果你想保存数组内容,应该这样
fread(str, sizeof(str), 1, fp); //sizeof(str) = 20;
在fscanf和fprintf 针对数组都不用
一、指代不同
1、scanf:是C语言中的一个输入函数。
2、gets:从标准输入设备读字符串函数。
二、读取方式不同
1、scanf:是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
2、gets:可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
三、数据流向不同
1、scanf:函数 scanf() 是从标准输入流stdin (标准输入设备,指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
2、gets:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
参考资料来源:百度百科-gets
参考资料来源:百度百科-scanf
一个数字以响应的话就是这样:还是用strcmp函数,要一个一个对比就不需要passcheck[]数组的
#include string.h
#include stdio.h
char key();
int pass(unsigned char);
int main ()
{
unsigned char password[]={7,4,5,6}; //用于存储设置好的密码
if (pass(password) == 1)
printf("ok!");
else
printf("failer");
return;
}
char key() //接收输入一个一个的比。因为输入是缓冲输入,所以必须回车才会响应
{
char p;
scanf("%c",p);
return c;
}
int pass(unsigned char password[])
{
char c;
for(int i = 0; i 5; i++)
{
c = key();
if(password[i] != c) return 0; //输入一个错误就提示错误退出。
}
return 1;
}
C语言中,首先有个主函数,即入口函数,函数名为main,也就是
所有程序的执行都是从main函数开始的。
然后就是两类函数,一类是库函数,这些函数是编译器自带的,
不同的函数有不同的功能,你可以再编写程序的时候去调用它们,
只要在程序中用#include 相应的头文件就可以。再有一类函数
是自定义函数,这类函数的功能是看程序员具体是怎么编写的。
你一般只需要记住常用的库函数就可以,例如printf,别的用到
的可以去查看具体怎么调用。
宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译
宏定义又称为宏代换、宏替换,简称“宏”。
格式:
#define 标识符 字符串
其中的标识符就是所谓的符号常量,也称为“宏名”。
预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。
掌握"宏"概念的关键是“换”。一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”。
即在对相关命令或语句的含义和功能作具体分析之前就要换:
例:
#define PI 3.1415926
把程序中出现的PI全部换成3.1415926
c语言函数和其他语言函数是不同的,是相互独立的。
希望对你有帮助。
在C语言中,文件操作都是由库函数来完成的。
要读取一个txt文件,首先要使用文件打开函数fopen()。
fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。
其次,使用文件读写函数读取文件。
在C语言中提供了多种文件读写的函数:
·字符读写函数 :fgetc和fputc
·字符串读写函数:fgets和fputs
·数据块读写函数:freed和fwrite
·格式化读写函数:fscanf和fprinf
最后,在文件读取结束要使用文件关闭函数fclose()关闭文件。
下面以格式化读写函数fscanf和fprintf为例,实现对文件A.txt(各项信息以空格分割)的读取,并将它的信息以新的格式(用制表符分割各项信息)写入B.txt,实现对A.txt的处理。
C语言源程序如下所示:
#include stdio.h
#include stdlib.h
#include assert.h
typedef struct student{
char name[32];
int no;
char sex[16];
float score;
} stu;
int main(int argc, char* argv[])
{
//打开文件
FILE * r=fopen("A.txt","r");
assert(r!=NULL);
FILE * w=fopen("B.txt","w");
assert(w!=NULL);
//读写文件
stu a[128];
int i=0;
while(fscanf(r,"%s%d%s%f",a[i].name,a[i].no,a[i].sex,a[i].score)!=EOF)
{
printf("%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//输出到显示器屏幕
fprintf(w,"%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//输出到文件B.txt
i++;
}
//关闭文件
fclose(r);
fclose(w);
system("pause");
return 0;
}
第一个函数是交换了两个指针量所指向的值。第二个函数是直接交换了两个指针变量。