文章目录
1.下面说法不正确的是:( )
A.scanf和printf是针对标准输入、输出流的格式化输入、输出语句
B.fscanf和fprintf是针对所有输入、输出流的格式化输入、输出语句
C.sscanf是从字符串中读取格式化的数据
D.sprintf是把格式化的数据写到输出流中
解析:选择D项。
D选项中,sprintf是把格式化的数据写到字符串中,与输出流无关。其他三句都准确描述了函数功能。
2.关于feof函数描述不正确的是:( )、
A.feof函数是用来判断文件是否读取结束的
B.feof函数是在文件读取结束的时候,检测是否是因为遇到了文件结束标志EOF,而读取结束
C.读取文本判断是否结束时,fgetc看返回值是否为EOF, fgets看返回值是否为NULL
D.二进制文件判断读取结束,看实际读取个数是否小于要求读取个数
解析:选择A项。
说明:feof函数是在文件读取结束后,判断文件读取结束的原因的,是读取失败结束,还是遇到文件尾结束。所以A是错误的,其他选项均正确。
3.作业标题(2809)
写一个程序拷贝文件
作业内容
使用所学文件操作,在当前目录下放一个文件data.txt,写一个程序,将data.txt文件拷贝一份,生成data_copy.txt文件。
基本思路:
打开文件data.txt,读取数据
打开文件data_copy.txt,写数据
从data.txt中读取数据存放到data_copy.txt文件中,直到文件结束。
关闭两个文件
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
FILE* pr = fopen("data.txt", "r");
if (NULL == pr)
{
perror("fopen for read");
return 1;
}
FILE* pw = fopen("data_copy.txt", "w");
if (NULL == pw)
{
perror("fopen for write");
fclose(pr);
return 1;
}
//读和写
int ch = 0;
while ((ch = fgetc(pr)) != EOF)
{
fputc(ch, pw);
}
//关闭文件
fclose(pr);
fclose(pw);
pr = NULL;
pw = NULL;
return 0;
}