首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

资料指针操作,刚接触,应该是很简单的题,求详解

2013-01-02 
文件指针操作,刚接触,应该是很简单的题,求详解题目描述编制程序,统计文本stdin中字符$出现的次数,并将结果

文件指针操作,刚接触,应该是很简单的题,求详解
题目描述
编制程序,统计文本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; 
}

热点排行