c++读写txt文档

主要是用C++读写txt文档的基本操作,最简单的写入和读出了两种基本操作
本程序的功能是向text.txt文件写入字符串"this is a text12"和读取字符串"this is a test12"
并且将读取到的字符串存到temp变量(char型变量),且输出到控制台窗口进行显示
注意:
当创建ofstream对象之后,可以像操作cout一样操作这个对象,也就是可以把ofstream的对象当作cout一样进行输出。
当创建ifstream对象之后,可以像操作cin一样操作这个对象,也就是可以把ifstream的对象当作cin一样进行输入。
 
复制代码
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
    //写txt文件
    ofstream OutFile("test.txt");//创建一个test.txt文本,并且打开test.txt文件
    OutFile << "this is test12!";//把字符串内容写入文件中
    OutFile.close();//关闭test.txt文件
    //读txt文件
    ifstream readFile("test.txt");
    char temp[1024] = {0};
    readFile >> temp;//遇到空格输出停止,空格后的内容无法输出,'\0'是截止符号
    readFile.getline(temp, 8, 0);//可以输出空格,遇到delim符号才截至。最后一个参数0表示文本框遇到空字符截止符(ASCII码为32,文本框不可能有空字符)
    //不加第三个参数0的时候,表示'\n'为截止符
    cout << temp << endl;
    readFile.close();
    system("PAUSE");
    return 0;
}
复制代码
复制代码
#include <iostream>
#include <fstream>
#include <cassert>
#include <string>

//接下来进行逐行读取
void readTxt(string file)
{
    ifstream infile;
    infile.open(file.data());//将文件流对象和文件连接起来
    assert(infile.is_open());
    string s;
    while(getline(infile, s))
    {
        cout << s << endl;
    }
    infile.close();
}

//接下来逐个字符读入(忽略空格和回车)
void readTxt(string file)
{
    ifstream infile;
    infile.open(file.data());//将文件流对象和文件连接起来
    assert(infile.is_open());//若失败,则输出错误消息,并停止程序运行
    char c;
    while(!infile.eof())
    {
        infile >> c;
        cout << c << endl;
    }
    infile.close();//关闭文件输入流
}

//接下来逐个字符读入(包括空格与回车)
void readTxt2(string file)
{
    ifstream infile;
    infile.open(file.data());//将文件流对象和文件连接起来
    assert(infile.is_open());//若失败,则输出错误消息,并终止程序运行
    char c;
    infile >> noskipws;
    while(!infile.eof)
    {
        infile >> c;
        cout << c << endl;
    }
    infile.close();//关闭文件输入流
}
复制代码
noskipws介绍
操作符noskipws会令输入运算符读取空白符,而不是跳过它们。
为了恢复默认行为,可以使用skipws操作符号。
cin >> noskipws;//设置cin读取空白符
while(cin >> ch)
cout << ch;
cin >> skipws;/将cin恢复到默认状态,从而丢弃空白符
 
 
 

posted @   花与不易  阅读(3237)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示