GNU/Linux下,用下面的文件 'foo.csv'(當然\ r的是蘋果回車):獲取龜etc GNU/Linux下處理的Mac OS CR
0,1,2,3\r
4,5,6,7\r
6,9,10,11\r
的fgets函數將整個文件作爲一行返回。我如何指定fgets應該將\ r作爲換行處理?的C代碼
實施例:
#include <stdio.h>
int main(int argc, char **argv) {
FILE *stream = fopen(argv[1],"r");
char tmp[1024];
int i=0;
while (fgets (tmp, 1024, stream) != NULL) {
printf("line %d\n", i);
i++;
}
}
我想避免一通到變換\ r =>\ n。
你有沒有試過''rt''模式與'fopen'?當你的問題是關於'fgets'的時候,你的標題爲什麼說'fgetc'? –
我不知道先驗將是什麼文件的換行... 我修正了標題中的錯字,謝謝! – Sylvestre
Mac OS X使用與Linux和其他遠程UNIX類操作系統相同的'\ n'。 Mac OS 9(2001之前)是最後使用'\ r'的。你看到的是來自WinDOS的'\ r \ n'(注意每個'\ r'後面有一個換行符)。 (編輯問題) – Potatoswatter