欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++ 输入输出流,文件操作

程序员文章站 2024-03-17 09:13:40
...

最近一直疑惑,C++中什么是输入文件什么是输出文件。

为什么需要从文件读取数据,我们要定义一个输入文件流,来打开文件,用ios::out?

需要向文件中写数据,从键盘读数据,我们要定义一个输出文件流 ios::in ?

其实这里的输入输出描述的是内存相对于文件流的关系

1. 要从文件中读取数据,磁盘--->内存-->文件流--->读取,这里就是内存向文件流输入。

2. 要向磁盘写入数据,写入--->文件流---->内存--->磁盘。 

 

//从键盘读入文字,并保存到line.txt文件中,遇到空格键结束输入

#include<iostream>
#include<fstream>
using namespace std;
int main(){
    fstream outfile;
    outfile.open("line.txt",ios::in);
    char ch[100];
    outfile.get(ch,100,'\0');
    cout<<ch;
    outfile.close();
    return 0;
}
//统计一个一篇英文小说的单词数,从文件读取小说
#include<iostream>
#include<fstream>
using namespace std;

bool isLetter(char letter){ //判断是否为字母,注意letter可以直接和'a'做大小比较
    if( (letter>='a' && letter<='z')||(letter>='A' && letter<='Z')) {
        return true;
    }
    else{
        return false;
    }
}


int main(){
    fstream outfile;
    outfile.open("novel.txt",ios::out); 
    char ch[100];
    outfile.getline(ch,100,'\0'); //这里一定要加上'\0'作为读取字符串结束的标志,否则会只读入一行
    cout<<ch<<endl;

    int enWordSum = 0;
    for( int i=0; ch[i]!='\0'; i++){  //这里不能写<100,以为'\0'后面的数据是未知的
        if ( (isLetter(ch[i]) == true) && ( isLetter(ch[i+1]) == false ) ){
            enWordSum++;
        }
    }
    cout<<enWordSum;
    outfile.close();
}

 

上一篇: Windows批处理小案例

下一篇: Day04