<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ftell() 函數用來獲取文件內部指針(位置指針)距離文件開頭的字節數,它的原型為: ~~~ long int ftell ( FILE * fp ); ~~~ 注意:fp 要以二進制方式打開,如果以文本方式打開,函數的返回值可能沒有意義。 先使用 fseek() 將文件內部指針定位到文件末尾,再使用 ftell() 返回內部指針距離文件開頭的字節數,這個返回值就等于文件的大小。請看下面的代碼: ~~~ long fsize(FILE *fp){ fseek(fp, 0, SEEK_END); return ftell(fp); } ~~~ 這段代碼并不健壯,它移動了文件內部指針,可能會導致接下來的文件操作錯誤。例如: ~~~ long size = fsize(fp); fread(buffer, 1, 1, fp); ~~~ fread() 函數將永遠讀取不到內容。 所以,獲取到文件大小后還需要恢復文件內部指針,請看下面的代碼: ~~~ long fsize(FILE *fp){ long n; fpos_t fpos; //當前位置 fgetpos(fp, &fpos); //獲取當前位置 fseek(fp, 0, SEEK_END); n = ftell(fp); fsetpos(fp,&fpos); //恢復之前的位置 return n; } ~~~ fpos\_t 是在 stdio.h 中定義的結構體,用來保存文件的內部指針。fgetpos() 用來獲取文件內部指針,fsetpos() 用來設置文件內部指針。 完整的示例: ~~~ #include<stdio.h> #include<stdlib.h> #include<conio.h> long fsize(FILE *fp); int main(){ long size = 0; FILE *fp = NULL; char filename[30] = "D:\\1.mp4"; if( (fp = fopen(filename, "rb")) == NULL ){ //以二進制方式打開文件 printf("Failed to open %s...", filename); getch(); exit(EXIT_SUCCESS); } printf("%ld\n", fsize(fp)); return 0; } long fsize(FILE *fp){ long n; fpos_t fpos; //當前位置 fgetpos(fp, &fpos); //獲取當前位置 fseek(fp, 0, SEEK_END); n = ftell(fp); fsetpos(fp,&fpos); //恢復之前的位置 return n; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看