C 逐行讀取文字檔案的正確做法

2021-08-11 22:00:39 字數 608 閱讀 3963

[cpp]view plain

copy

ifstream file;  

file.open(「c:\\hudson.log」);  

char szbuff[1024] = ;  

while(!file.eof())    

開始這段**執行是沒有問題的,但後來執行居然出現了死迴圈,上網查了下資料,發現原因是:當緩衝區不夠大的時候,getline函式也會對緩衝區輸入資料,但同時也會把ifstream的狀態位failbit設定了,於是fail函式會返回true。於是上述**會嵌入死迴圈,由於處於fail狀態下的ifstream,其getline函式不會再讀入任何資料,因此後續的getline呼叫沒有效果,並且fail函式一直返回true。

正確的做法是:

[cpp]view plain

copy

#include 

#include 

#include 

using

namespace std;  

int main()  

}  1. getline的獲取ifstream的資料

C 逐行讀取文字檔案的正確做法

分享一下我老師大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!ifstream file file.open c hudson.log char szbuff 1024 while file.eof 開始這段 執行是沒有問題的,但後來執行居然出現了死...

再談C 逐行讀取文字檔案

std string strline while getline file,strline 這裡忽略了乙個重要的因素 文字的編碼方式。開啟windows自帶的記事本程式,留意觀察 儲存 對話方塊,其右下角提供了文字編碼選擇下拉列表,除了大家熟知的ansi和unicode編碼,還有可以說最為常用的ut...

php 逐行讀取文字檔案

在讀取文字時,我們要注意乙個事情,那就是換行符,應為我們在寫文件時會手動換行,這個換行符需不需要儲存就要看自己的需求了。這裡封裝了兩個方法,乙個保留換行,乙個不保留。path為檔案路徑 檔名 1.不保留換行 1 function read path 11 fclose file 12 user ar...