头文件
#include<fstream>
可能使用的操作
一、定义一个变量,让这个变量就像一个泄洪口一样,使所需要的文件中的数据从这个小口出来。
ifstream fin; 相当于是给整个代码这个大布袋,定义一个小口,然后其他文件布袋可以从这个小口里倒米。(企图搞个比喻)
fin.open("aaa.txt"); 就是对接aaa.txt这个米袋和定义的小口。到这一步就像是int a,fin就是a,意思是,fin作为一个变量,将aaa.txt赋给fin,我们接下来就使用fin代指aaa.txt。
【以上两个操作可以合成一个,相当于int a = 1。也就是 ifstream fin("aaa.txt");】
fin.close; 相当于关闭这个小口,米不再往里倒。
while(!fin.eof) 是一个常用的循环。里面的fin.eof意思就是end of file。所以整体的判断条件就是判断fin所代表的这袋大米是否倒完了。
有个很有趣的点,开始倒米的时候,fin和cin很像。cin是从键盘读入,fin就是从这个代表的文件米袋里倒米。“>>”符号就很形象从一个米袋里面倒米。
int a;char b;
cin>>a>>b; 就是从键盘读一个值,把这个值覆盖(或者说赋值)给a/b。该是数就是数,该是字符串就是字符串。
fin>>a>>b; 也是,不过是从文件读一个值,然后把这个值覆盖给a/b。同样该是数就是数,该是字符串就是字符串。因为文件是固定的,所以相当于输入固定,照着文件顺序安排a/b类型就行。
字符串处理
字符数组初始化方法:
char str[10] = "Hello";
char str[10] = {'H','e','l','l','o','\0'};
这两种居然是等价的写法。要注意就是最后须要有这个\0,所以str[10]最多只能有9个字母
ASCII码:回车13,换行10,空格32。因此只有‘\0’这个东西标志着结束。
如果使用cin一个int型数组,会出错,只好使用for循环。但可以直接cin>>str。
常用字符串处理函数
#include<cstring>
strlen(char *a) | 字符串长度 |
strcpy(char *dst, const char *src) | 字符串复制 |
strcmp(char a,char b) | 字符串比较ASCII的大小,相等为0 |
strcat(char *dst, char *src) | 字符串连接并存到dst |
strncpy(char *dst,const char *src,size n) | 超n则n,不超则全 |
字符串二维数组
char strs[4][10] = { //4个元素,每个元素最多10-1长
"Hello",
"world",
"C++",
"!"};
【写到这里越来越觉得自己白学了几年学😭😭。这些很基本的东西不是不会,只是几乎没用过,不熟练。就是因为一点点这种知识的缺漏,让整个知识体系越学越困难。正好趁着这个假期补一补,我想应该会很有帮助。错的地方估计有很多,但好心的大猩猩(我老婆称这个软件为大猩猩😀)一定会友善地为我指出来,提前谢谢各位大佬!😙】
2024.1.30更新写文件:
ofstream fout("aaa.txt");
也可以写成
ofstream fout;
fout.open("aaa.txt");
类似于ifstream。这里相当于在代码这个米袋里开了个往外倒地小口叫做fout,然后这个小口对接的就是aaa.txt。【先对接才能往里倒(操作)】
fout<<a<<b;
类似cout,(cout相当于在终端/屏幕输出/显示)将a,b写到fout(也就是aaa.txt)中。
使用fout.close将口关闭。