C++的文件输入/输出

创作内容不易,学习的朋友麻烦关注下博主,后面学习不迷路。有不会的问题也可以论坛咨询博主,博主也会及时回复~~

目录

1.简单的输入和输出

写入到文本文件

读取文件内容

good()方法                                                                                                                                         

2.文件模式


1.简单的输入和输出

在我们使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不管目标数据类型是什么,输入一开始都是字符数据(文本数据),然后,cin对象负责将文本转换为其他类型。

而对出输出,将执行相反的转换。控制台输入的文件版本是文本文件。即每个字节都存储了一个字符编码的文件。但也不是所有的文件都是文本文件。比如数据库和电子表格以数值格式(即二进制整数或浮点格式)来存储数值数据。还有字处理文件中可能包含文本信息,但也可能包含用于描述格式字体,打印机等的非文本数据。

写入到文本文件

头文件:fstream

类:ofstream

对象:自己定义

功能:自己定义的对合可以和cout对象那样操控输出流。

open()打开文件。close()关闭文件

在这个例子当中,我们打开文件hello.txt。如果存在则会将当前文件当中的所有内容情况,在写入。如果没有则会自动创建文件。也可以直接使用构造函数 ofstream fon("hello.txt")来打开文件

读取文件内容

头文件:fstream

类:ifstream

对象:自己定义

功能:自己定义的对合可以和cin对象那样操控输出流。

open()打开文件。close()关闭文件

这里我们在从hello.txt将之前我们写入的内容在读取出来。这里也可以直接使用 ifstream fin("hello.txt")打开文件。需要直到的是像fon.close()和fin.close()关闭这样的链接并不会删除流,而只是断开流到文件的链接。然而,流管理装置仍被保留                                                                                                                                                                                                                               

good()方法                                                                                                                                         

good()方法,在ifstream方法当中有一个good方法。这个方法指出最后一次读取输入的操作是否成功(当然了你使用cin使用的eof和fail也是可以的)。

这里fin和cin一样会省略掉空格,输入单词,最后将文件当中的"hello world"分别两次读取给ch。最后一次遇到EOF,fin.good()变为false结束。这里还有一个技巧,fin >> ch的结果就是对象fin,而在需要一个bool值得情况下,fin的结果就是fin.good(),既true或flase;

2.文件模式

常量

含义

ios_base::in

打开文件,以便读取

ios_base::out

打开文件,以便写入

ios_base::ate

打开文件,并移到文件尾

ios_base::app

追加到文件尾

ios_base::trunc

如果文件存在,则截短文件

ios_base::binary

二进制文件

一般ifstream open()方法和构造函数用ios_base::in(打开文件以读取)作为模式参数的默认值

而ofstream open()方法和构造函数用ios_base::out | ios_base::trunc(打开文件,以读取并截断文件)作为默认值

C++模式

C模式

含义

ios_base::in

"r"

打开以读取

ios_base::out

"w"

等价于ios_base::out | ios_base::trunc。打开文件以写入,如果已经存在,则截短文件

ios_base::out  | 

ios_base::app

"a"

打开以写入,只追加

ios_base::in |

ios_base::out

"r+"

打开以读取,在文件允许的位置写入

ios_base::in |

ios_base::out |

ios_base::trunc

“w+"

打开以读写,如果已经存在,则首先截短文件

c++mode |

ios_base::binary

"cmodeb"

以C++mode和二进制模式打开;列如ios_base::in | ios_base::binary称为"rb"

c++mode |

ios_base::ate

"cmode

以指定的模式打开,并移到文件尾。C使用一个独立的函数调用,而不是模式编码。列如,ios_base::in | ios_base::ate被转换为"r"模式和C函数调用fseek(file,0,SEEK_END)


我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是两种C++文件输入输出字符串的例子: 1. 从标准输入中读取一行字符串,然后输出该字符串及其长度,并将该字符串转换为C风格字符串,最后输出C风格字符串及其长度减去3的子串。 ```cpp #include <iostream> #include <cstdio> // printf #include <cstring> // strlen using namespace std; int main(int argc, char const *argv[]) { string str1; getline(cin, str1, '!'); // 读取一行字符串,以感叹号为结束符 cout << str1 << '\n'; // 输出该字符串 cout << "str1.size(): " << str1.size() << '\n'; // 输出该字符串的长度 const char * cstr = str1.c_str(); // 将该字符串转换为C风格字符串 printf("%s\n", cstr); // 输出C风格字符串 printf("strlen(cstr): %lu\n", strlen(cstr)); // 输出C风格字符串的长度 string str2(cstr, strlen(cstr) - 3); // 截取C风格字符串的长度减去3的子串 cout << str2 << '\n'; // 输出子串 return 0; } ``` 2. 从文件中读取一个字符串,然后向另一个文件输出一些文本和该字符串。 ```cpp #include <iostream> #include <fstream> #include <string> using namespace std; int main(int argc, char const *argv[]) { ifstream fin; fin.open("1.txt", ifstream::in); // 打开输入文件 ofstream fout("2.txt", ios_base::out); // 打开输出文件 string str; fin >> str; // 从输入文件中读取一个字符串 fout << "hey, there\n"; // 向输出文件输出一些文本 fout << str << '\n'; // 向输出文件输出该字符串 fin.close(); // 关闭输入文件 fout.close(); // 关闭输出文件 return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小天才哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值