回复 4楼 renkejun1942
int main(int argc, char* argv[])
{
/*
for (int i = 'A' ;i<='F' ;i++)
{
for (int j = 'A';j<=i; j++)
{
printf("%c ",j);
}
printf("\n");
}
*/
//这里一调用就出错
filePutc () ;
fileGetc () ;
filePuts () ;
fileGets () ;
fileWrite() ;
fileRead () ;
return 0;
}
// 写入字符的文件
void filePutc ()
{
// 定义一个文件指对象
// 指向所操作的文件内存
FILE* pF ;
// 打开一个文件
// 如果不存在,创建一个新文件并打开
// 如果文件在跟exe程序在同一个目录存在
// 直接打开
// 参数一:文件名,相对路径
// 参数二:文件打开的方式,w,表示写入方法,可以向文件中写入内容
//“r” 读取方式,只能读取数据,不能写入数据,不可写
// 返回值,指向打开文件的指针,如果为NULL 打开文件失败
pF = fopen ("data.txt","w") ;
if (pF==NULL)
{
puts("打开文件失败!");
return ;
}
for (int i = 'A' ;i<'F' ; i++)
{
// 向文件中 写入字符
// 参数一: 要写入字符的ASCLL
// 参数二:要写入文件的指针
fputc(i,pF);
}
// 关闭文件,保证文件正确
fclose(pF) ;
}
// 读出字符到文件
void fileGetc ()
{
FILE* pF ;
//以读取的方式打开文件
pF = fopen("data.txt","r") ;
if (pF==NULL)
{
puts("打开文件失败!");
return ;
}
// 从文件读取一个字符
// 参数:文件指针
// 返回值:读取好的字符
char c =fgetc(pF) ;
// 如果读取的字符不是文件结尾标志
// 持续读取:EOF;文件结尾标示位
while (c !=EOF)
{
//打印当前字符
printf("%c",c);
// 继续读取下一个字符
c =fgetc(pF);
}
puts ("") ;
// 关闭文件
fclose(pF) ;
}
// 写入一组字符到文件
void filePuts()
{
FILE* pF ;
// 以读取的方式打开文件
pF = fopen("data.txt","w") ;
if (pF==NULL)
{
puts("打开文件失败!");
return ;
}
//打印字符串到文件中
// 参数一:字符串地址
// 参数二:写入文件的指针
fputs ("12345\n",pF);
fputs ("ABCDE\n",pF)
// 关闭文件
fclose(pF);
}
// 读取字符串到文件中
void fileGets()
{
FILE* pF ;
// 以读取的方式打开文件
pF = fopen("data.txt","r") ;
if (pF==NULL)
{
puts("打开文件失败!");
return ;
}
char str[100] ;
// 按行来读出字符串
// 参数一:读取的字符存放的位置地址
// 参数二:读取的字符个数
// 参数三:从哪个文件读取
fgets(str,12,pF) ;
printf("%s",str) ;
fgets(str,12,pF) ;
printf("%s",str) ;
fclose(pF) ;
}
//写入以任意大小的任何内容到文件中
void fileWrite()
{
FILE* pF ;
// 以读取的方式打开文件
pF = fopen("data.txt","w") ;
if (pF==NULL)
{
puts("打开文件失败!");
return ;
}
char str[100] = "12345678abcdefg" ;
// 写入任意个字符二进制数据到文件中
// P1: 要写入的内容和指针void*任何类型都可以写入
// p2: 每个变量的大小,根据变量的大小来确定
// p3: 一共存储多少个变量内容:1*15
// p4: 文件指针
fwrite((void*)str,sizeof(char).15,pF)// 15的大小可以调整
// 关闭文件
fclose(pF);
}
// 读取任意大小的内容到文件中
void fileRead ()
{
FILE* pF ;
// 以读取的方式打开文件
pF = fopen("data.txt","r") ;
if (pF==NULL)
{
puts("打开文件失败!");
return ;
}
char str[100] ;
// 写入任意个字符二进制数据到文件中
// 返回值表示读取成功的有效字节数
// 如果返回值为0:读取失败
int r = fread(str,sizeof(char),10,pF);
str[10]='\0' ;
if(r!=0)
{
printf("读取的自己数%d\n",r);
priontf("%s",str);
}
fclose(pF) ;
}