有关C语言文件的操作求助

going__ 2018-01-20 03:37:36

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fp;
FILE *fp2;
fp2=fopen("stdout","a+");
char count=48;
char ch;
if((fp=fopen("stdin","wb+"))==NULL)
{
printf("can not open the file");
exit(0);
}
ch=getchar();
ch=getchar();
while(ch!=EOF)
{
fputc(ch,fp);
ch=getchar();
if(ch=='$')
count++;
}
ch=fgetc(fp2);
fputc(ch,fp2);
fclose(fp);
fclose(fp2);
return 0;
}

为什么我的stdout文件总是无法打印出内容啊,对C语言文件操作总是很模糊的感觉
...全文
621 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wodexiaojidan 2018-01-22
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
	FILE *in, *out;
	
	in = fopen("./stdin", "r");
	if(in == NULL){
		exit(-1);
	}

	out = fopen("./stdout", "a");
	if(out == NULL){
		exit(-1);
	}

	int ch, cnt = 0;
	while((ch = fgetc(in)) != EOF){
		(void)fputc(ch, out);

		if(ch == '$'){
			cnt++;
		}
	}

	(void)fclose(in);
	(void)fclose(out);

	printf("\'$\' exsit %d times\n", cnt);

	return 0;
}
'$' exsit 3 times
leetow2006 2018-01-21
  • 打赏
  • 举报
回复
也学习到了!
paschen 2018-01-21
  • 打赏
  • 举报
回复
以文本方式读写,因为根据你题目要求,需要读入和写入的都是文本,此外,ch = getchar()并不是从文件中读取字符,而是从控件台读取,你可以使用fgetc
自信男孩 2018-01-20
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

int main()
{
	/*
	FILE *fp;
	FILE *fp2;
	fp2 = fopen("stdout","a+");

	char count=48;
	char ch;
	if((fp=fopen("stdin","wb+"))==NULL) {
		printf("can not open the file");
		exit(0);
	}
	*/
	int count = 0, ch;

	ch = getchar();
	while (ch != EOF)
	{
		fputc(ch, stdout);
		ch = getchar();
		if(ch == '$')
			count++;
	}
	printf("%d\n", count);
	/*
	fclose(fp);
	fclose(fp2);
	*/
	return 0;
}
标准输入输出已经是打开状态,不需要再打开。 标准输入比如键盘,标准输出比如终端,显示器等。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧