先打开fp=fopen(“”,“”);
再操作,写入fputc(ch,fp),读出ch=fgetc(fp);
从键盘读取字符是ch=getchar();将字符显示在屏幕上是putchar(ch);
1、从键盘中输入一个字符串,并逐个将字符串的每个字符传送到磁盘文件11.txt中,字符串的结束标记为“#”;
#include <stdio.h>
#include <stdlib.h>
void main()
{
char ch;
if((fp=fopen("d:\\11.txt","w"))==NULL)
{
printf("can't open\n");
exit(0);
}
printf("enter the data:\n");
while((ch=getchar())!='#')
fputc(ch,fp);
fclose(fp);
}
2、有一个文本文件11.txt,请编写一个程序将文件中的英文字母及数字字符显示在屏幕上;
#include <stdio.h>
#include <stdlib.h>int main()
{
FILE *fp;
char ch;
if((fp=fopen("d:\\11.txt","r"))==NULL)
{
printf("can't open\n");
exit(0);
}
while(!feof(fp)){
ch = fgetc(fp);
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z'||ch>='0'&&ch<='9')
putchar(ch);
}
fclose(fp);
return 0;
}
ps:补充知识:
feof()函数是我们在C语言中操作文件经常用到的一个函数。这个函数用来表示我们是否已经到了文件的末尾的下一个位置。不管是二进制文件,还是文本文件它都管用。对比EOF(一般宏定义为-1),EOF只能用来判断文本文件是否到达末尾,因为文本文件中的数字是用ASCII表示的,ASCII字符的取值范围是0~255。而二进制文件中可能存在-1,所以不能用EOF来判断结束。
我们使用feof经常遇到的一个问题是,用fgets读文件,然后用fputs打印。最后一行会打印两遍。
这是为什么了?
先说一下feof()函数
在stdio.h里有feof的定义:
#define
#define
由此可知只有当_flag=_IOEOF时,feof()才会返回1。在VC里,只有当 file
3、把文本文件11.txt中的数字字符复制到文本文件12.txt中;
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp1;
FILE *fp2;
char ch;
if((fp1=fopen("d:\\11.txt","r"))==NULL||(fp2=fopen("d:\\12.txt","w"))==NULL)
{
printf("can't open \n");
exit(0);
}
while((ch =fgetc(fp1))!=EOF){
if (ch>='0&#