以下内容是学习尚硅谷
14.1 文件-基本介绍
文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的 word文档,txt文件,excel文件…都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音…
14.1.1 文件在程序中是以流的形式才操作的
14.1.2 相关函数在stdio.h
C标准库-stdio.h该头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出,在开发过程中,可以来查询
14.2 C输入&输出
1)当我们提到输入时,这意味着要向程序写入一些数据。输入可以是以文件的形式或从命令行中进行。C语言提供了一些列内置的函数来读取给定的输入,并根据需要写入到程序中
2)当我们提到输出时,这意味着要在屏幕、打印机上或任意文件中显示一些数据。C语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本本间或二进制文件中
14.3 标准文件
1)C语言把所有的设备都当做文件。所以设备(比如显示器)被处理的方式与文件相同。以下三个文件会在程序执行时自动打开,以便访问键盘和屏幕
2)文件指针是访问文件的方式,我们会讲解如何从屏幕读取值以及如何把结果输出到屏幕上
3)C语言中的I/O(输入/输出)通常使用printf()和scanf()两个函数。scanf()函数用于从标准输入(键盘)读取并格式化,printf()函数发送格式化输出到标准输出(屏幕)
4)案例演示,将内容输出到屏幕
#include <stdio.h>
int main(){
printf("hello");
return 0;
}
14.4 getchar()&putchar()函数
1)int getchar(void)函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。
2)int putchar(int c)函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符
3)应用实例:程序会读取一个单一的字符
#include <stdio.h>
int main(){
int c;
printf("Enter a value");
c=getchar();
printf("\n You entered");
putchar(c);
printf("\n");
return 0;
}
14.5 gets()&puts()函数
1)char *gets(char *s)函数从stdin读取一行到s所指向的缓冲区,直到一个终止符或EOF
2)int puts(const char *s)函数把字符串s和一个尾随的换行符写入到stdout
3)应用实例:程序读取一整行直到该行结束
#include <stdio.h>
int main(){
char str[100];
printif("Enter a value:");
gets(str);
printf("\nYou entered");
puts(str);
return 0;
}
14.6 scanf()和printf()函数
4)应用实例:您输入一个文本并按下回车键时,程序读取输入,但是要求格式要匹配
#include <stdio.h>
int main(){
char str[100];
int i;
printf("Enter a value");
scanf("%s %d",str,&i);
printf("\nYou entered:%s %d",str,i);
printf("\n");
return 0;
}
14.7 C文件读写
14.8 打开文件
14.9 关闭文件
14.10 写入文件
代码演示
#include <bits/types/FILE.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main(){
//创建一个文件指针
FILE* fp=NULL;
//打开该文件
fp=fopen("d:/test/100.txt", "w+");//w+ 模式是 文件会被截断尾零长度
//fp=fopen("d:/test/100.txt", "a+");//w+ 模式是 文件会被截断尾零长度
//将内容写入到文件中
/*
fprintf(fp, "你好 北京\n");
fputc("你好,上海\n", fp);*/
//关闭文件
fclose(fp);
printf("创建,写入信息完成");
getchar();
}
14.11 读取文件
#include <bits/types/FILE.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main(){
//创建一个文件指针
FILE* fp=NULL;
//定义一个缓冲区
char buff[1024];
//打开文件
fp=fopen("d:/test200.txt","r");
//方法1
//fscanf(fp, "%s",buff);
//输出
//printf("%s\n",buff);
//方法2 读取整个文件
//说明,循环读取fp指向的文件内容,如果读到NULL,就结束
while (fgets(buff,1024,fp)!=NULL) {
printf("%s",buff);
}
//关闭文件
fclose(fp);
getchar();
}