1.C++
头文件:
#include <iostream>
#include <fstream>
#include <cassert>
#include <string>
1.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(); //关闭文件输入流
}
2.逐个字符读入(忽略空格与回车)
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(); //关闭文件输入流
}
2.逐个字符读入(包括空格与回车)
void readTxt(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(); //关闭文件输入流
}
读入到结构体数组中的例子程序
输入样例:
wang 18 001
li 19 002
zhao 20 003
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
struct people
{
string name;
int age;
string id;
}p[20];
int main()
{
int n = 0;
ifstream in("a.txt", ios::in);
if(!in.is_open())
{
cout << "Error: opening file fail" << endl;
exit(1);
}
while(!in.eof() && n < 20)
{
in >> p[n].name >> p[n].age >> p[n].id;
n++;
}
//test
for (int i = 0; i < n; ++i)
cout << "name:" << p[i].name << " age:" << p[i].age << " id:" << p[i].id << endl;
in.close();
return 0;
}