『壹』 c++ 如何用 ifstream 讀取txt文件的全部內容
#include <fstream>
ifstream fin("a.txt");
以簡森仿後在程序中春洞用 fin>> 流入變數。
當然a.txt要和exe在同一文件夾。
否則雙引號中要加上路徑攔纖,如c:\a.txt
若不懂,請參考c++文件流。
『貳』 c++ifstream讀文件內容出現錯誤
char *name;
char *profession;
char *title;
這三處,都有錯,。問題就是沒有分內存。
兩種方法解決:
方法一:
如果你知道上面三個參數最大需嫌雀配要多少位元組,。可以用
這樣的方法來分內存。用name為例:name=(char *) malloc(大小);
用完之後,在最後面用 free(name);釋放內存。
方法二:
換芹指個歲叢定義的方法
char name[大小];
char profession[大小];
char title[大小];
『叄』 如何用ifstream讀取一個100行每行6個數據的文件,存儲在一個鏈表中
//---------------------------------------------------------------------------
#include
<fstream>
#include
<iostream>罩則宏
using
namespace
std;
typedef
struct
node{
int
data;
struct
node
*next;
}
node;
node
*creat(ifstream
&ifp)
{
node
*h=NULL,*p=NULL,*q=NULL;
int
data;
while
(ifp>>物冊data)
{
p=new
node;
p->data=data;
p->next=NULL;
if
(!h)
h=p;
else
q->next=p;
q=p;
}
return
h;
}
void
prt(node
*h)
{
if
(h)
{
cout<<h->盯正data<<endl;
prt(h->next);
}
}
int
main(void)
{
ifstream
fp("d:\\data.txt",ifstream::in);
node
*hst=creat(fp);
fp.close();
prt(hst);
return
0;
}
//---------------------------------------------------------------------------
『肆』 ifstream流怎麼讀取文件里所有的信息急!!
操作符>>在流肢腔吵文件ifstream中,是析取器的圓碰作用,即從標准輸入流中讀取一個指定類型數據,對於字元串A來說,當遇到回車、空格就會自動停止,因為這被默認為一個字元串的結束。
因此,你如果需要讀取txt中的全部內容,應該使用in.get(char)函數,循環讀取到文件歷侍末尾。
或者,用CFile吧,這個在MFC下比ifstream更好用一些,可以一個Read函數全部讀取。
『伍』 c++ 如何用ifstream讀取文件
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
ifstream data_read("test.txt");
if (!data_read)
{
cerr << "讀取時打開文件出錯嘩迅物!" << endl;
}
else
{
char ch[100],name,memo[100];
int age[100];
int i=1;
while (!data_read.eof())
{
data_read >> ch;
sscanf(ch,"%s %d %s",&name,&age[i],&memo);
cout << "name=" << name << endl;
cout << "age=" <亂液< age[i] << endl;
cout << "memo=" << memo << endl;
cout << i<< "ch=" << ch << endl ;
i++;
}
}
data_read.close();
我的test.txt文件內容是這樣的:
姓名:hehe年昌凳齡:12備註:123
姓名:haihai年齡:18備註:12ff
姓名:aa年齡:22備註:ff11
我想把這些內容能夠按照姓名,年齡,備注這樣的不同,放在不同的數組里。。
現在我寫的那段程序是出錯了。。我也不知道怎麼改,請高手幫忙,謝謝
我是菜鳥
解析:
不能用sscanf(ch,"%s %d %s",&name,&age[i],&memo);
來拆分你的記錄,得用strstr(ch, "姓名:")這樣的方法來定位,然後取值,例如:
char * p1 = strstr(ch, "姓名:");
char * p11 = p1 + strlen("姓名:");
char * p2 = strstr(ch, "年齡:");
char * p21 = p2 + strlen("年齡:");
char * p3 = strstr(ch, "備註:");
char * memo = p3 + strlen("備註:");
char name[p2-p11+1];
strncpy(name, p11, p2-p11);
char age[p3-p21+1];
strncpy(age, p21, p3-p21);
『陸』 使用ifstream的get()函數讀取文件中的字元發生錯誤
真正原因是彎陵:在eof()這里。當文件指針到達文件末尾時,執行eof不會立刻返回true,要等到下一次讀取時才會返回。即再執行一次get()之後,eof才會返回true。此時,ifstream流的狀態標識為失敗,get沒有讀到東西,所以c保存了上一次讀取的數據,因此出現最後一個字元被顯示兩次的現象。
解決:修改代戚空碼,使用eof()與fail()結合判斷文件結尾。
ifstream fin("input.txt");
while(!fin.eof()){
char c;
fin.get(c);
if(fin.fail()) break;//假如是埋仔戚文件尾部,在c輸出之前就跳出
cout<<c<<endl;
}
『柒』 在c++里用ifstream類讀取文件錯誤
你使用了沒有定義的標示符,檢查一下所有的函數、變數是否都在頭文件中定義了,檢查一下cpp文件中是否包含了頭文件,檢查一下函數名稱的大小寫問題,在c++中,函數a和函數a是兩個不同的函數,仔細的檢查一下。
『捌』 高手們,C++MFC如何使用ifstream流隔行讀取txt文件
#include<iostream>碧正
#include<好慧塌fstream>
usingnamespacestd;
intmain()
{
strings;
ifstreaminfile("txt.txt");
if(!infile)return1;
intn=0;
while(!infile.eof())
{
stringtimes,date;
infile>>times>>友圓date;
n++;
if(n%2==0)
{
cout<<times<<""<<date<<endl;
}
}
return0;
}
『玖』 ifstream讀取問題
// while(fi.get(ch)) //問題在這里,fi.get(ch)把每一行的第一個字元讀掉了(對於漢字余碼蠢來說,就是把豎陪半個字丟了,那後面當然讀取有問題模禪了,換成這樣判斷:
while(fi.peek()!=EOF)
{
getline(fi,a,'\n') ;
cout<<a<<endl;
}