fprintf()
函数用于将一组字符写入文件。它将格式化的输出发送到流。
fprintf()
函数的语法如下:
int fprintf(FILE *stream, const char *format [, argument, ...])
示例:
创建一个源文件:fprintf-write-file.c,其代码如下 -
#include <stdio.h>
main() {
FILE *fp;
fp = fopen("file.txt", "w");//opening file
fprintf(fp, "Hello file by fprintf...\n");//writing data into file
fclose(fp);//closing file
printf("Write to file : file.txt finished.");
}
执行上面示例代码,得到以下结果 -
Write to file : file.txt finished.
打开filehadling 目录下,应该会看到一个文件:file.txt 。
读取文件:fscanf()函数
fscanf()
函数用于从文件中读取一组字符。它从文件读取一个单词,并在文件结尾返回EOF
。
fscanf()
函数的语法如下:
int fscanf(FILE *stream, const char *format [, argument, ...])
示例:
创建一个源文件:fscanf-read-file.c,其代码如下 -
#include <stdio.h>
main(){
FILE *fp;
char buff[255];//creating char array to store data of file
fp = fopen("file.txt", "r");
while(fscanf(fp, "%s", buff)!=EOF){
printf("%s ", buff );
}
fclose(fp);
}
执行上面示例代码,得到以下结果 -
Hello file by fprintf...
文件存取示例:存储员工信息
下面来看看一个文件处理示例来存储从控制台输入的员工信息。要存储雇员的信息有:身份ID,姓名和工资。
示例:
创建一个源文件:storing-employee.c,其代码如下 -
#include <stdio.h>
void main()
{
FILE *fptr;
int id;
char name[30];
float salary;
fptr = fopen("emp.txt", "w+");/* open for writing */
if (fptr == NULL)
{
printf("File does not exists \n");
return;
}
printf("Enter the Emp ID:");
scanf("%d", &id);
fprintf(fptr, "Id= %d\n", id);
printf("Enter the name: ");
scanf("%s", name);
fprintf(fptr, "Name= %s\n", name);
printf("Enter the salary: ");
scanf("%f", &salary);
fprintf(fptr, "Salary= %.2f\n", salary);
fclose(fptr);
}
执行上面示例代码,得到以下结果 -
Enter the Emp ID:10010
Enter the name: Maxsu
Enter the salary: 15000
现在从当前目录打开文件。将看到有一个emp.txt文件,其内容如下 -
emp.txt
Id= 10010
Name= Maxsu
Salary= 15000.00