写文件-输出相应字符/字符串到相应的文本文件
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<errno.h>
#include<string.h>
int main()//输入字符到TEST.txt中
{
FILE *pfwrite=fopen("TEST.txt","w");
if (pfwrite == NULL)//打开失败情况
{
printf("%s\n", strerror(errno));
return 0;
}
//写文件-输出相应字符/字符串到相应的文本文件中
fputc('x', pfwrite);
fputc('y', pfwrite);
fputc('d',pfwrite);
fputs("abc", pfwrite);
fputs("abc", pfwrite);
fputs("abc", pfwrite);
fclose(pfwrite);//释放资源,关闭文件
pfwrite = NULL;
return 0;
}
读取一个字符或字符串从流里
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<errno.h>
#include<string.h>
int main()//读取一个字符或字符串从流里
{
FILE* pf=fopen("TEST.txt","r");
if (pf == NULL)
{
printf("%s",strerror(errno));
return 0;
}
//读取
char arr[1024] = { 0 };
int ch = fgetc(pf);//读取第一个字符并且打印到屏幕上
printf("%c\n",ch);//当前面被读取过,后面的会接着读取
int sh = fgets(arr,1024,pf);
//读取pf内的字符放到arr数组内,读取1024个字符
printf("%s\n",arr);
fclose(pf);
pf =NULL;
return 0;
}
fputs不会换行读取一段字符串
int main()
{
FILE* pf = fopen("test1.txt","w");
if (pf == NULL)
{
return 0;
}
fputs("hello",pf);//不会换行读取一段字符串
fputs("xyd", pf);
fclose(pf);
pf = NULL;
return 0;
}
从键盘读取一行文本信息
int main()
{
//从键盘读取一行文本信息
char arr[1024] = { 0 };
fgets(arr,1024,stdin);//从标准输入流读取到arr数组内
fputs(arr,stdout);//输出到标准输出流
//等同于
gets(arr);//无传参
puts(arr);
return 0;
}
格式化输入输出--fscanf--fprintf
struct Student
{
int age;
float score;
char name[20];
};
int main()//格式化输入数据
{
struct Student s = { 20,3.14f,"jack" };
FILE* pf = fopen("TEST.txt","w");
if (pf == NULL)
{
return 0;
}
fprintf(pf,"%d %f %s",s.age,s.score,s.name);
fclose(pf);
pf = NULL;
return 0;
}
//格式化输出数据
//struct Student
//{
// int age;
// float score;
// char name[20];
//};
//int main()//格式化输出数据
//{
// struct Student s = {0};
// FILE* pf = fopen("TEST.txt","r");
// if (pf == NULL)
// {
// return 0;
// }
// fscanf(pf,"%d %f %s",&(s.age),&(s.score),s.name);
// printf("%d %f %s",s.age,s.score,s.name);
// fclose(pf);
// pf = NULL;
// return 0;
//}
面试小题
//eg:对比一组函数
//scanf/fscanf/sscanf
//printf/fprintf/sprintf
//scanf/printf 是针对标准输入流/标准输出流的 格式化输入/输出语句
//fscanf/fprintf 是针对所有输入流/所有输出流的 格式化输入/输出语句
//sprintf--把格式化的数据存储到字符串
//sscanf--是从字符串中读取格式化的数据
//eg
struct Student
{
int age;
float score;
char name[20];
};
int main()
{
struct Student s = { 100 ,3.14f,"abcdef"};
struct Student ttt = { 0 };
char arr[1024] = { 0 };
//把格式化的数据转换成字符存储在arr中
sprintf(arr,"%d %f %s",s.age,s.score,s.name);
//printf("%s\n",arr);
//从arr中读取格式化的数据到ttt中
sscanf(arr,"%d %f %s",&(ttt.age),&(ttt.score),&(ttt.name));
printf("%d %f %s\n",ttt.age,ttt.score,ttt.name);
return 0;
}
标签:文件,arr,return,读取,int,C语言,pf,pfwrite,操作
From: https://blog.51cto.com/u_16425777/9241894