头文件
#include <iostream>
#include <fstream>
#include <cassert>
#include <string>
1、逐行读入文件
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(); ? ? ? ? ? ? //关闭文件输入流?
}
注意:ifstream读取文本时,遇到空格会断开。
2、逐个字符读入(忽略空格与回车)
void readTxt(string file)
{
? ? ifstream infile;?
? ? infile.open(file.data()); ? //将文件流对象与文件连接起来?
? ? assert(infile.is_open()); ? //若失败,则输出错误消息,并终止程序运行?
char str[65536] = {""};? ?
char c;
int i = 0;
? ? while (!infile.eof())
? ? {
? ? ? ? //infile >> c;
? ? ? ? //cout<<c<<endl;?
infile.get(ch);
str[i] = ch;
i++; ?
};
? ? infile.close(); ? ? ? ? ? ? //关闭文件输入流?
}
3、逐个字符读入(包括空格与回车)
void readTxt(string file)
{
? ? ifstream infile;?
? ? infile.open(file.data()); ? //将文件流对象与文件连接起来?
? ? assert(infile.is_open()); ? //若失败,则输出错误消息,并终止程序运行?
? ? // infile >> noskipws; // or below
cin.unsetf(ios::skipws);
? ? char str[65536] = {""};? ?
char c;
int i = 0;
? ? while (!infile.eof())
? ? {
? ? ? ? //infile >> c;
? ? ? ? //cout<<c<<endl;?
infile.get(ch);
str[i] = ch;
i++; ?
};
? ? }
? ? infile.close(); ? ? ? ? ? ? //关闭文件输入流?
}
———————————————— 参考:https://blog.csdn.net/weixin_45525272/article/details/109687419
|