文件指针操作,刚接触,应该是很简单的题,求详解
题目描述
编制程序,统计文本stdin中字符$出现的次数,并将结果写入文件stdout
输入
字符文本
输出
$次数
样例输入
as$dfkjhkjkjdhf
asdfkj$lskdfj
werijweirjo$wie
样例输出
3
提示
#include <stdio.h>
int main(){
FILE *p;
.....
//p=fopen("data.txt","r");
p=stdin;
.....
//p=fopen("res.txt","w");
p=stdout;
....
return 0;
}
分割线------------------------------
首先给我一个解决代码,要注释啊,我知道很短的代码。还有提示中的两句语句是什么意思告诉一下:
1:p=stdin;
2:p=stdout;
我想学有关的知识,什么视频啥的推荐一下,或者告诉我一些门路。。。
PS:我又来咯
[解决办法]
/*vc6.0 env*/
#include <stdio.h>
#include <cstdlib>
#include <memory.h>
#include <string.h>
#include <stdlib.h>
#include <CTYPE.H>
//只需把待寻找'$'符号文件放入C盘根目录
#define PATHIN "C:\\stdin.txt"
#define PATHOUT "C:\\stdout.txt"
main()
{
FILE *pin,*pout;
unsigned long int cnt = 0,view;
char carr[sizeof(unsigned long int) + 1];
memset(carr,0,sizeof(unsigned long int)+1);
system("del c:\\stdout.txt"); //此处有先删除。另外也可以采取不删除,打开覆盖写入方式。
pin=fopen(PATHIN,"r");
if(NULL == pin)
printf("文件打开失败!\n");
while(!feof(pin)) //到文件末尾结束
{
if('$' == fgetc(pin))
cnt++;
}
fclose(pin);
printf("当前文件中存在着%d个$符号\n",cnt);
pout=fopen(PATHOUT,"wt");
if(NULL == pin)
printf("文件打开失败!\n");
ltoa(cnt,carr,10); //数字转换成字符串
fwrite(carr,strlen(carr),1,pout);
fclose(pout);
return 0;
}