博客專欄

        EEPW首頁 > 博客 > C語言一行一行讀取文件

        C語言一行一行讀取文件

        發布人:電子禪石 時間:2024-01-26 來源:工程師 發布文章

        C語言中,使用fgets函數可以一行行讀du取文件。


        1、fgets函數:


        原型:char * fgets(char * buf, int bufsize, FILE * stream);


        功能:從文件結構體指針stream中讀取數據,每次讀取一行。


        說明:讀取的數據保存在buf指向的字符數組中,每次最多讀取bufsize-1個字符

        (第bufsize個字符賦值為\0)。如果該行不足bufsize個字符,則讀完該行就結束,

        如果該行超過bufsize-1個字符,則fgets只返回一個不完整的行,buf緩沖區以\0字符結束,

        下一次fgets調用會繼續讀取該行剩余的字符;


        頭文件:stdio.h;


        返回值:若讀入成功,返回與參數buf相同的字符指針,若讀入過程中遇到EOF或發生錯誤,

        返回NULL指針。所以當遇到返回值為NULL的情況時,應使用ferror或feof函數檢查是發生錯誤

        還是遇到EOF。

        ————————————————

        #include<stdio.h>
        int a;
        char b,c[100];
        int main(){
            FILE * fp1 = fopen("input.txt", "r");//打開輸入文件
            FILE * fp2 = fopen("output.txt", "w");//打開輸出文件
            if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出
                puts("不能打開文件!");
                return 0;
            }
            fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數
            b=fgetc(fp1);//從輸入文件讀取一個字符
            fgets(c,100,fp1);//從輸入文件讀取一行字符串
             
            printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對于文件首的偏移字節數
             
            fputs(c,fp2);//向輸出文件寫入一行字符串
            fputc(b,fp2);//向輸出文件寫入一個字符
            fprintf(fp2,"%d",a);//向輸出文件寫入一個整數
             
            fclose(fp1);//關閉輸入文件
            fclose(fp2);//關閉輸出文件,相當于保存
            return 0;
        }


                                    版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

                                

        原文鏈接:https://blog.csdn.net/deflypig/article/details/107488432


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: c

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 广东省| 枣阳市| 西吉县| 新营市| 修文县| 汝南县| 福贡县| 乌拉特中旗| 鹤峰县| 呈贡县| 平罗县| 怀来县| 河源市| 祁阳县| 威宁| 印江| 江达县| 罗平县| 宜春市| 泸溪县| 柘荣县| 高雄县| 富民县| 松溪县| 科尔| 若尔盖县| 林甸县| 紫阳县| 六安市| 基隆市| 新沂市| 韩城市| 繁峙县| 乐平市| 广安市| 壤塘县| 伊宁市| 南华县| 离岛区| 西吉县| 仁布县|