C Primer Plus学习_29 重定向和文件

重定向

程序可以通过两种方式使用文件,第一种方法是,显示使用特定的函数打开文件、关闭文件、读取文件、写入文件,诸如此类书中13章才会介绍,这里我也并不知道怎么说,就留到13章介绍吧;第二种方法,设计能与键盘和屏幕互动的程序,通过不同的渠道,重定向输入或输出至文件,这种方法有所限制,但是用起来比较简单。

/*echo_eof.c -- 重复输入, 直到文件结尾*/
#include <stdio.h>
int main (void)
{
	int ch;
	
	while((ch = getchar()) != EOF){
		putchar(ch);
	}
	
	return 0;
 } 

完成这样的操作,需要使用到这样的程序,在上一篇中已经提到过了。编译完成这个程序后,在储存该程序的文件夹里会有一个.exe文件。(书上说的我没怎么看懂,这里就说一下流程)

windows+r,然后在窗口中输入cmd,回车,弹出dos窗口,进入程序所在的文件夹,

在光标后输入echo_eof.exe  <  XXX.txt

(这里要先建立一个txt文件,在其中输入你想要打印的内容,要将这个txt文件和exe文件放在同一个文件夹中,本来我是放在桌面上的结果搞了半天。。。)

这是重定向输入的方法,重定向输出就将  <  改成  >  这里要用到上一篇中所讲到的Ctrl+z来结束输入

既然有了输入和输出,就可以完成上一篇中所提到的“复制粘贴”操作了,书上称为组合重定向,方法可以归为以下两种公式:

prog < file1 > file2

prog > file2 > file1

两种形式都是把file2作为输出,理解的时候可以和参数赋值相比较,有些系统要求中间要有留白(空格)有些不用,反正加上也不会有问题,为什么比空格开?

/* file_eof.c -- 打开一个文件,并显示该文件*/
#include <stdio.h>
#include <stdlib.h>			//为了使用exit() 
int main (void)
{
	int ch;
	FILE * fp;
	char fname [50];		//储存文件名 
	
	printf("Enter the name of the file :");
	scanf("%s", &fname);
	fp = fopen(fname, "r");		//打开到读取文件 
	if (fp == NULL){			//如果打开失败了 
		printf("Failed to open file.Bey\n");
		exit (1);				//退出程序 
	} 
	//getc(fp)从打开的文件中获取一个字符
	while ((ch =getc(fp)) != EOF) {
		putchar(ch);
	}
	fclose(fp);			//关闭文件 
	
	return 0;
 }  

这是第13章的一个程序,在这里书上提前拿出来展示了一遍,在我这种看不懂的人的眼里,就像是在装13。。。。

但是相信我很快也可以这么装13微笑

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值