利用VC软件通过代码书写就可以将数据写入文件。
首先打开VC++6.0。
选择文件,新建。
选择C++ source file 新建一个空白文档。
先声明头文件#include <stdio.h>。
写上主函数
void main
主要代码
FILE *infile,*outfile,*otherfile
char input
char inputs[10]
int i=0
infile = fopen("d:\\infile.txt","r+")//用fopen函数打开文件
outfile = fopen("d:\\outfile.txt","a+")//用fopen函数打开文件
if ( !infile )
printf("open infile failed....\n")
if ( !outfile)
printf("open outfile failed...\n")
printf("*********************************************\n")
printf("** This program is to show file operation! **\n")
printf("** The input file is: **\n")
printf("** d:\\infile.txt **\n")
printf("** The contents in this file is: **\n")
printf("\n")
for()
{
input = fgetc(infile)//死循环读出文件内容
printf("%c",input)
putc(input,outfile)//写入内容
i++
if(input == '\n' || input == EOF)
break
}
fclose(infile)
fclose(outfile)
scanf("%d",i)
运行结果
程序注意的一点,二进制和文本形式的读取区别你需要巩固,读的文件就不要以读写形式打开,养成一个好的习惯。\x0d\x0a另外一个不太重要的一点,id确实很少作为int类型的,因为有些id会很长,比如10位20位,这样int就存不下了,而用char数组存的话只需要10个字节20个字节就能存下,对于每一位也好比较。\x0d\x0a#include \x0d\x0a#include \x0d\x0atypedef struct student\x0d\x0a{\x0d\x0a int unsigned id\x0d\x0a float score [3]\x0d\x0a float rank\x0d\x0a}Student\x0d\x0a\x0d\x0aint main ()\x0d\x0a{\x0d\x0a Student s\x0d\x0a FILE * fp\x0d\x0a fp=fopen("C:\\f11.txt","r")//尽量以可读方式打开\x0d\x0a if (!fp)\x0d\x0a {\x0d\x0a printf("file cannot be opened")\x0d\x0a exit(1)\x0d\x0a }\x0d\x0a //fscanf(fp,"%d %f %f %f",&s.id,&s.score[0],&s.score[1],&s.score[2])这一行拿到下面while语句里面\x0d\x0a //fprintf(stdout,"%g",s.score[2]) \x0d\x0a FILE * fw\x0d\x0a fw=fopen("C:\\f11a.txt","w")//注意wb是以2进制形式打开文件,还有目录的格式\x0d\x0a if (!fw)\x0d\x0a {\x0d\x0a printf("file cannot be opened")\x0d\x0a exit(1)\x0d\x0a } \x0d\x0a\x0d\x0a while(!feof(fp))\x0d\x0a {\x0d\x0a fscanf(fp,"%03d%f%f%f",&s.id,&s.score[0],&s.score[1],&s.score[2])\x0d\x0a s.rank=(s.score[0]+s.score[1]+s.score[2])/3\x0d\x0a fprintf(fw,"%03d\t%.1f\t%.1f\t%.1f\t%.1f\n", s.id, s.score[0], s.score[1], s.score[2], s.rank)//尤其注意fprintf和fwrite不同,fwrite是以二进制形式写文件,如果用fwrite的话将会显示乱码,fwrite和fread配套,fscanf和fprintf配套\x0d\x0a }\x0d\x0a\x0d\x0a fclose (fp)\x0d\x0a fclose(fw)\x0d\x0a return 0\x0d\x0a}设要写入的数字是int型,则用控制字符串%d和%s来完成,举例代码行如下:
fprintf(fp,"%d %s\n",12345,"abcdefg")
其中:fp是成功写打开文件的指针。此代码行先向文件写入整型数字12345,再加一个空格,接着写入字符串abcdefg,然后写入'\n'。
#include "stdio.h"
#include "string.h"
void main()
{
char a[6]="china"
char temp[1024]
int n=0//记录有多少个china
FILE *outFile=fopen("c:\b.txt","r+")
FILE *inFile=fopen("c:\a.txt","r+")
while(fgets(temp,500,inFile)!=NULL)
{
int k=0
for(int i=0i<strlen(temp)i++)
{
if(temp[i]==a[k] &&k<strlen(a))
{
k++
}
else
{
if(k==strlen(a))
{
n++
fprintf(outFile,"%s
",a)
}
k=0
}
}
}
}
在C盘要有这两个文件。。。
a文件中可能有多个china ,指定加到第几行自己看情况 在设置一个int变量记录就行了