目录
步骤:
1.打开文件 fopen2.循环用fgetc获取文件内容
3.当读到文件末尾标志EOF时结束
4.将读取文件内容用fputc打印到终端
5.关闭文件
代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{
if (argc != 2)
{
printf("err: %s <filename>\n", argv[0]); //提示一下正确的格式
return -1;
}
//1.打开文件
FILE *fp = fopen(argv[1], "r");
if (NULL == fp)
{
perror("fopen err");
return -1;
}
//2.循环用fgetc读文件,只要读到就fputc打印到终端
char ch;
while ((ch = fgetc(fp)) != EOF)
fputc(ch, stdout); //将读到字符打印到终端
//3. 关闭文件
fclose(fp);
return 0;
}
分析:
首先,在
main
函数中检查命令行参数的数量。如果参数数量不是 2 ,说明用户输入格式不正确,通过printf
输出错误提示信息,并返回-1
结束程序。使用
fopen
函数以只读模式("r")打开指定的文件。如果打开文件失败(返回NULL
),通过perror
输出错误信息,并返回-1
结束程序。定义一个字符变量
ch
,使用一个while
循环,通过fgetc
函数从文件中逐个读取字符,并将读取到的字符存储在ch
中。只要读取到的字符不是文件末尾标志EOF
,就使用fputc
函数将该字符输出到标准输出(终端)。循环结束后,使用
fclose
函数关闭已经打开的文件,释放相关资源。整个程序的目的是实现类似于系统命令
cat
的功能,将指定文件的内容逐字符读取并打印到终端显示