C C 按行讀取檔案

2021-09-02 18:15:27 字數 1343 閱讀 2700

本文**都在windows/vc++6.0下測試過, 在linux/g++下也沒有問題。 

但是請一定注意linux和windows檔案格式的區別,比如:

1. 當linux上的**讀取windows檔案格式時, 讀取結果的每行都會多乙個\r,  想想為什麼。

2. 當windows上的**讀取linux格式檔案時, 讀取的結果會顯示只有一行, 想想為什麼。

先用c語言寫乙個醜陋的程式:

#include

#include

int main()

char ch;

while(eof != (ch=fgetc(fp)))

fclose(fp);

return 0;

}你只能看到結果,卻沒法利用每一行。 我們來改為:

// vc++6.0

#include

#include

int main()

;int len = 0;

file *fp = fopen("1.txt", "r");

if(null == fp)

while(!feof(fp))

fclose(fp);

printf("\n");

return 0;

}這樣, 我們就是整行讀取了。

感覺c的讀取方法有點醜陋,還是看看c++吧(只要檔案格式windows/linux和編譯平台windows/linux對應一致, 就放心用吧):

#include

#include

#include

using namespace std;

int main()

}else // 沒有該檔案

return 0;

}當然,你可以對上述程式進行修改,讓1.txt中的每一行輸入到2.txt中,如下:

#include

#include

#include

using namespace std;

int main()

}else // 沒有該檔案

return 0;

}結果, 2.txt和1.txt中的內容完全一致,你可以用beyond compare比較一下,我比較過了。

看來上述程式還能實現檔案的複製呢,如下:

#include

#include

#include

using namespace std;

void filecopy(char *file1, char *file2)

}int main()

當然了,上述程式只能針對文字檔案(不僅僅是.txt),對其它型別的檔案,不適合。

按行讀取檔案

const string strurlfilename testurl.txt ifstream fin strurlfilename.c str fstream binary if fin fin.eof string serverurl getline fin,serverurl info lo...

c讀取按行讀取檔案

c中沒有getline 這個函式,該函式只存在於c 中。有些人說用gets,但是這個函式是不安全的,gets不知道字串的大小,容易造成溢位的問題。解決方案,使用fgets函式 其關鍵在於在讀出n 1個字元之前,如遇到了換行符或eof,則讀出結束。因此,通過設定適當大小的緩衝區,即可實現讀取一行的功能...

C 讀取檔案 按行讀取

zz c 如何讀取檔案前面說過了 下面以乙個例子來說明如何按行讀取,其實很簡單,就是使用filestream的readline 方法。例如有這樣乙個檔案test.txt,讀取出來顯示在乙個richtextbox中,檔案內容如下 html view plain copy print?諾基亞 n8 摩托...