包括iostream,math等 可根据需要在文件中引入
也可以自定义头文件,只要写成*.h形式就可以了
在引入时用#include "XXXX.h" 不能用<>,使用相对路径
C++中建议用这种形式:
#include <iostream>//没有.h 这个是输入输出流
#include <cmath>//在前面加c 一样没有.h 表示是C语言中的
//这个是数学函数 引入后可以使用sin() 之类的
using namespace std//这是命名空间
文件 *** 作要引入 #include <fstream>//文件流
这里有个例子:你可以去参考一下:
#include <iostream>
#include <fstream>
using namespace std
int main() //文本形式读写文件
{
char ch
cout<<"open file"<<endl
ifstream fin("F:\\a.txt")
if(!fin)
{
cout<<"can not open infile!"<<endl
//return
}
fin.close()
ofstream fout("F:\\a.txt")
if(!fout)
{
cout<<"can not open outfile!"<<endl
//return
}
while(fin.get(ch))
{
cout<<ch
if(fout)
fout.put(ch)
}
fin.close()
fout.close()
return 0
}
也可以用C的方式去 *** 作:http://zhidao.baidu.com/question/80580297.html
可以使用fgets函数来实现。1 函数名:
fgets
2 声明形式:
char *fgets(char *buf, int bufsize, FILE *stream)
3 头文件:
stdio.h
4 功能及参数说明:
从stream中读取一行数据存到buf中。如果数据长度小于bufsize,那么读入整行数据,并将换行符转换为字符串结束符\0。 如果数据长度超过bufsize,那么只读入bufsize大小的数据,并在结尾添加\0。
5 返回值:
成功,则返回第一个参数buf;
在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;
如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变。
假如定义一个文本,格式如下:
1 2 3
2 3 4
3 4 5
5 6 7
7 8 9
文件名为test.txt(包含5行)
C++代码如下:
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
int main(int args, char **argv)
{
std::ifstream fin("split.txt", std::ios::in)
char line[1024]={0}
std::string x = ""
std::string y = ""
std::string z = ""
while(fin.getline(line, sizeof(line)))
{
std::stringstream word(line)
解读代码:
word >>x
word >>y
word >>z
std::cout <<"x: " <<x <<std::endl
std::cout <<"y: " <<y <<std::endl
std::cout <<"z: " <<z <<std::endl
}
fin.clear()
fin.close()
return 0;
}
下面介绍代码:首先说明一下头文件,头文件中<iostream>, <string>的作用就不用说了,<fstream>是定义文件的需要的头文件,而<sstream>是字符串流stringstream所需要的头文件。
第8行: std::ifstream fin("split.txt", std::ios::in)定义读取的文本文件。
第9行: char line[1024] = {0}用于定义读取一行的文本的变量。
第10--12行,定义了 x y z 三个字符串变量,用于存放读取一行数据后,分别存放每行的三个数据。
第13--22行,用一个循环读取每行数据,读取行的函数是getline()函数,然后利用stringstream将每行文本自动按照空格分列,并分别存放到对应的三个字符串变量中。
23、24行代码,就是刷新缓存,并关闭文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)