文件创建与拷贝
要求
- 下面所有功能要求使用C代码实现 创建一个文本文件叫test.txt,里面写一段字符串,至少有10行,其中某一行包括字符串 “Hello”;
- 从这个文件里面读出每一行进行解析,并打印包含"Hello"字符串的这一行;
- 再把这个文本文件拷贝一份,重命名为test.log
- 把test.log里所有的内容打印到标准输出;
要求1:
创建一个文本文件叫test.txt,里面写一段字符串,至少有10行,其中某一行包括字符串 “Hello”;
考虑: fopen(); fwrite()/fputs
fp1 = fopen("./test.txt","w+");
if(fp1 == NULL){
printf("open file failure!\n");
return 0;
}
for(i=0;i<10;i++)
{
if(i==5)
fputs("hello world!\n",fp1);
else if(i==6)
fputs("sdasfdhellowzdc!\n",fp1);
else
fputs("mensljusjpks\n",fp1);
}
要求2:
从这个文件里面读出每一行进行解析,并打印包含"Hello"字符串的这一行;
考虑:fgets, strstr, printf
while(!feof(fp1))
{
fgets(buf,sizeof(buf),fp1);
p=strstr(buf,"hello");
if(p != NULL)
//printf("p:%s",p);
printf("buf:%s",buf);
}
要求3:
再把这个文本文件拷贝一份,重命名为test.log
考虑: fopen(), fgets(fp1)-> fputs(fp2)
while(!feof(fp1))
{
fgets(buf,sizeof(buf),fp1);
fputs(buf,fp2);
p=strstr(buf,"hello");
if(p != NULL)
printf("buf:%s",buf);
}
要求4:
把test.log里所有的内容打印到标准输出;
考虑: fgets(); printf();
fp3 = fopen("test.log","r+");
if(fp3 == NULL){
printf("open file failure!\n");
return 0;
}
while(!feof(fp3))
{
fgets(buf,sizeof(buf),fp3);
printf("%s",buf);
}
fclose(fp3);
运行结果:
[klaus@localhost chapt2]$ ls
buf buf_rewrite.c file file.c hello.txt write.c ww
[klaus@localhost chapt2]$ ./file
buf:hello world!
buf:sdasfdhellowzdc!
mensljusjpks
mensljusjpks
mensljusjpks
mensljusjpks
mensljusjpks
hello world!
sdasfdhellowzdc!
mensljusjpks
mensljusjpks
mensljusjpks
mensljusjpks
mensljusjpks
[klaus@localhost chapt2]$ ls
buf buf_rewrite.c file file.c hello.txt test.log test.txt write.c ww
以下是完整代码链接,可参考下载!