|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
c中如何對文件進行一行行的處理?
我的文件有很多行,我想把某一行的內容讀入一個字符竄怎麼做,
問題是c中連字符竄類型都沒有,fwrite和fread好像都不是針對行的,
並且怎麼循環把一行行的記錄全部讀出來,好像也沒有eof函數判斷,文件到了
最後一行,實在麻煩啊? |
c中如何對文件進行一行行的處理?
使用fgets()函數可以得到一行數據,循環調用此函數就可以一行一行的讀入文件中的數據。當讀到空時,文件就結束了。 |
c中如何對文件進行一行行的處理?
fp=fopen(const char * pathname,mode_t mode);
while(fgets(char * buf,size_t size,FILE *fp));
man man man !! :D |
c中如何對文件進行一行行的處理?
使用fgets()函數 |
c中如何對文件進行一行行的處理?
問題是我的行長度不定啊 |
c中如何對文件進行一行行的處理?
你把size定義到你行長度一般不可能達到的數字就行了。
比如我一般用200。 |
c中如何對文件進行一行行的處理?
是的,fgets如果想一下子讀完一行的話,的確要估計一下一行的最大字符數 |
c中如何對文件進行一行行的處理?
一般的fget(1024)應該足夠了,我便是這麼使用 |
c中如何對文件進行一行行的處理?
如果不放心,你老人家就一個一個讀吧,自己控制行結束
fgetc |
c中如何對文件進行一行行的處理?
呵呵,流氓的辦法更可靠~ |
c中如何對文件進行一行行的處理?
xiexie |
c中如何對文件進行一行行的處理?
:) |
c中如何對文件進行一行行的處理?
讀字符判斷『\n』好不好? |
c中如何對文件進行一行行的處理?
| c中如何對文件進行一行行的處理?
在UNIX上面應該是\n\r吧。 |
c中如何對文件進行一行行的處理?
若使用fgetc來一個一個判斷字符的話,需要考慮到dos/windows下和unix下面的存儲方式是不同的。在dos/windows下回車換行是\x13\x10,在unix下面回車換行是\x10。所以若要簡單的方法,還是用藍色版主的方法,就無需考慮到文件格式了。 |
c中如何對文件進行一行行的處理?
我有一個建議,可以用流操作呀,以下代碼是打開一個文件,並判斷此文件中有多少個英文單詞(要考慮空格的)
[code]
#include <string>;
#include <fstream>;
#include <iostream>;
using namespace std;
int main()
{
ifstream fin("mytest.txt");
int i;
char word[512];
int count = 0;
while(!fin.eof())
{
fin.getline(word, 512);
for(i = 0; word[i] != '\0'; i++)
{
if((word[i] != ' ' ) && ((word[i + 1] == ' ') || (word[ i + 1] == '\0')))
count++;
}
}
cout << "The word number is: " << count;
cout << endl;
}
[/code]
這樣得到那些字符後,再寫成一個串不就不成問題了。 |
c中如何對文件進行一行行的處理?
循環fgets,直到讀入了'\n'。 |
c中如何對文件進行一行行的處理?
用流操作,cin.getline(buf); 哈哈…… |
| |