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