日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文件输入和输出

發布時間:2025/3/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件输入和输出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

(1)創建一個ofstream對象來管理輸出流,相對于程序來說,文本文件是外部文件,因此使用輸出流輸出到程序外部。

方法一: ofstream oftest; //使用無參構造函數進行初始化 char filename[6]="c:\\a.txt"; //注意轉義字符的使用 ofstream.open(filename,ostream::app); //以添加模式打開文件 方法二: ofstream oftest("c:\\a.txt",ostream::app);

(2)將該對象與特定的文本文件關聯起來。可以在構造函數中指定。

(3)使用該對象的“<<”運算符將字符輸出到文件中,輸出字符到文本文件的程序。

代碼示例:

#include<iostream>????????? //cout
#include<fstream>??????????? //ofstream?? ifstream
#include<string>????????????? //c_str()
#include<cstdlib>????????????? //system()
using namespace std;?
//很多時候看到程序經常是直接指定命名空間,而不是使用using語句,
//可能是考慮到用戶也可能會編寫與std命名空間中的函數同名的函數

int main(){
???
??? //文件名
??? string filename;
??? cout<<"please input the filename"<<endl;
??? cin>>filename;
???
??? ofstream fout(filename.c_str());
??? fout<<"hello world, i am writing a file"<<endl;
???
??? fout.close();
???
??? ifstream fin(filename.c_str());
???
??? char ch;
??? while(fin.get(ch)){
??????? cout<<ch;
??? }
???
??? cout<<endl;
???
??? fin.close();
??? system("pause");? //it can also be std::cin.get();
??? return 0;?
???
???
}

c_str_百度百科
http://baike.baidu.com/view/1600698.htm

函數聲明:const char *c_str();

c_str()函數返回一個指向正規C字符串的指針, 內容與本string串相同.

這是為了與c語言兼容,在c語言中沒有string類型,故必須通過string類對象的成員函數c_str()把string 對象轉換成c中的字符串樣式。

注意:一定要使用strcpy()函數 等來操作方法c_str()返回的指針

比如:最好不要這樣:

char* c;

string s="1234";

c = s.c_str();

//c最后指向的內容是垃圾,因為s對象被析構,其內容被處理(糾正:s對象的析構是在對指針c完成賦值操作之后進行的,故此處并沒有編譯錯誤)

在vc++2010中提示的錯誤原因:

應該這樣用:

char c[20];

string s="1234";

strcpy(c,s.c_str());??? //第一個參數是目的,第二個是源

這樣才不會出錯,c_str()返回的是一個指向常量的指針,不能對其進行操作

c_str()返回的是一個分配給const char*的地址,其內容已設定為不可變更,如果再把此地址賦給一個可以變更內容的char*變量,就會產生沖突,在2010中是不被允許的。但是如果放入函數調用,或者直接輸出,因為這些函數和輸出都是把字符串指針作為 const char*引用的,所以不會有問題。 (note:在vs2010中不可以將一個const char*類型賦值給一個char*.

例(2)

c_str() 以const char* 類型返回 string 內含的字符串

如果一個函數要求char*參數,可以使用c_str()方法:

string s = "Hello World!";

printf("%s", s.c_str()); //輸出 "Hello World!"

c_str在打開文件時的用處:

當需要打開一個由用戶自己輸入文件名的文件時,可以這樣寫:ifstream in(st.c_str());。其中st是string類型,存放的即為用戶輸入的文件名。

轉載于:https://my.oschina.net/ray1421/blog/686838

總結

以上是生活随笔為你收集整理的文件输入和输出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。