c++对txt文件读取操作+实例代码

因c++文件操作一直要用,所以就特此写一篇博客来记录一下c++对txt文件的读取操作。

1.c++文件流:

fstream   //文件流

ifstream  //输入文件流

ofstream  //输出文件流

2.文件路径的表示

文件路径的表示可以分为绝对路径和相对路径。

绝对路径pDummyFile = fopen("D:\\vctest\\glTexture\\texture\\dummy.bmp", "rb"); 

给出了从盘符开始的全部路径,这里需要注意的是“\”要用双斜线"\\"

相对路径对相对路径而言,路径表示中的“\”也要用双斜线"\\"

windows下表示相对路径的规则为:

1、.\ 或 ./  表示当前目录,或同级目录;    2、..\ 或 ../  表示父目录,或上级目录。

3、文件打开方式选项:
ios::in   //供读,文件不存在则创建(ifstream默认的打开方式)

ios::out   //供写,文件不存在则创建,文件存在则清空原内容(ofstream默认打开方式)

ios::ate  //文件打开时,指针指在文件最后,常和in、out联合使用

ios::app   //供写,文件不存在则创建,在原文件内容后写入新的内容,指针位置总在最后

ios::binary  //二进制格式文件

3、对txt文件的显示和复制(显示in.txt文件内容并将in.txt的内容复制到out.txt文件中)

//实现txt文件的读入并重写入另外一个txt文件中~
#include  //ifstream
#include
#include     //包含getline()
//#include
using namespace std;

int main(){
    string s;
    ofstream outf;
    ifstream inf;
    inf.open("d://in.txt");          //特别注意,这里是://  是双斜杠喔~~ 
    //打开输出文件
    outf.open("d://out.txt");     
    while (getline(inf, s))      //getline(inf,s)是逐行读取inf中的文件信息
    {
        outf << s << '\n';
        cout << s << endl;
    }
    inf.close();
    outf.close();
    return 0;
}

4、基本的从txt文件中读入数据和显示数据

//为能够正确读出写入文件的各数据,各数据间最好要有分隔
#include
#include
using namespace std;
int main()
{
    fstream f("d:\\out.txt",ios::out);
    f<<1234<<' '<<3.14<<'A'<<"How are you";      //写入数据  
    f.close();
    f.open("d:\\out.txt",ios::in);
    int i;
    double d;
    char c;
    char s[20];
    f>>i>>d>>c;         //读取数据
    f.getline(s,20);
    cout<
// 在文件后面续写数据
#include 
#include
using namespace std;
int main () {
    ofstream examplefile   ("example.txt",ios::app);
    if(examplefile.is_open()) {
        examplefile<<"This is a line.\n";
        examplefile<<"This is another line.\n";
        examplefile.close();
    }
    return 0;
}
5、istringstream用法

istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。

#include
#include
using namespace std;
int main()
{
	string str, line;
	while(getline(cin, line))
	{
		istringstream stream(line);
		while(stream>>str)
			cout<
测试:
input:
abc   df   e              efgeg      ffg


ouput:
abc
df
e
efgeg
ffg


getline函数详情见链接 点击打开链接

6、用vctor储存读取的数据
可以看看这个网址,百度一下也行
https://wenwen.sogou.com/z/q809722253.htm

7、汽车加油问题的文件操作

一辆汽车加满油后可以行驶n千米。旅途中有k个加油站。若要使沿途的加油次数最少,设计一个有效的算法,指出应在那些加油站停靠加油。

 数据输入:由文件input.txt 给出输入数据。第一行有2个正整数n和k,表示汽车加满油后可行驶nkm,且旅途中有k个加油站。接下来1行中,有k+1个整数,表示第k个加油站与第k-1个加油站之间的距离。第0个加油站表示出发地,汽车已加满油。第k+1个加油站表示目的地。

结果输出:将编程计算出的最少加油次数输出到文件ouput.txt。如果无法到达目的地,则输出“No Solution”。

输入文件示例              输出文件示例

Input.txt                   output.txt

7   7                          4

1 2 3 4 5 1 6 6 

#include
#include
using namespace std;

int main()
{
   ifstream fin("input.txt",ios::in);
    ofstream fout("output.txt");
    int a[100];  //距离
    int n,k;
    fin>>n>>k;
    for(int i=0;i>a[i];
    int sum=0;   //加油次数
    int k1=0;      //加油后的里程数
    for(int i=0;in)
        {
            fout<<"No Solution";
            return -1;
        }
    for(int i=0;in)
        {
            sum++;
            k1=a[i];
        }
    }
    fout<n)
        {
            k1=a[i];
            fout<

希望分享的对你们有用处,加油!

你可能感兴趣的:(c++学习)