怎么做可以把下圖中相同的的款號數量一鍵整理成一個款號然后款號后面就是這個款的總數
993
2022-05-28
大家好,我是芒果,一名非科班的在校大學生。對C/C++、數據結構、Linux及MySql、算法等領域感興趣,喜歡將所學知識寫成博客記錄下來。 希望該文章對你有所幫助!如果有錯誤請大佬們指正!共同學習交流
掘金LV3用戶 https://juejin.cn/user/1381426159953960
阿里云社區專家博主,星級博主,技術博主 https://developer.aliyun.com/profile/expert/5lkdbuggiiuhc
華為云云享專家 https://bbs.huaweicloud.com/community/myhomepage
使用上方的fseek為例子
int main() { //打開文件 FILE* pf = fopen("test.txt","r"); if(NULL == pf) { perror("fopen"); return -1; } //讀文件 //隨機讀寫 //如果想要第一次讀取就讀到字符c fseek(pf,2,SEEK_SET); //定位文件指針的位置,c相對于字符a,偏移量為2 char ch = fgetc(pf); printf("%c\n",ch);//c //讀取字符之后,文件指針向后偏移,指向d //此時文件指針指向d,相對于起始位置a的偏移量為3 printf("%d\n",ftell(pf)); //3 //假設現在想讀取字符b fseek(pf,-2,SEEK_CUR);//字符b相對于字符d,偏移量為-2 ch = fgetc(pf); printf("%c\n",ch);//b //讀完b之后,文件指針向后偏移,指向c //此時文件指針指向c,相對于起始位置a的偏移量為2 printf("%d\n",ftell(pf)); //2 //3.關閉文件 fclose(pf); pf = NULL; return 0; }
例子1
int main() { //打開文件 FILE* pf = fopen("test.txt","r"); if(NULL == pf) { perror("fopen"); return -1; } //讀文件 //假設想讀e fseek(pf,4,SEEK_SET); //e相對于a的偏移量為4 char ch = fgetc(pf); printf("%c\n",ch);//e //讓文件指針回到最初位置->即指向a rewind(pf); ch = fgetc(pf); printf("%c\n",ch);//a //關閉文件 fclose(pf); pf = NULL; return 0; }
11.文本文件和二進制文件
概念
根據數據的組織形式,數據文件被稱為文本文件或者二進制文件。 數據在內存中以二進制的形式存儲,如果不加轉換的輸出到外存,就是二進制文件。
如何存儲
如果要求在外存上以ASCII碼的形式存儲,則需要在存儲前轉換。以ASCII字符的形式存儲的文件就是文本文件。 一個數據在內存中是怎么存儲的呢? 字符一律以ASCII形式存儲,數值型數據既可以用ASCII形式存儲,也可以使用二進制形式存儲。 如有整數10000,如果以ASCII碼的形式輸出到磁盤,則磁盤中占用5個字節(每個字符一個字節),而二進制形式輸出,則在磁盤上只占4個字節(VS2013測試)。
例子:整數10000以ASCII存儲和以二進制形式存儲
以ascii碼形式存儲時,占用5個字節(因為每一個數都占一個字節),而用二進制形式存儲時,占用4個字節(整形)
驗證:把10000寫到文件中再讀取出來
int main() { //打開文件 FILE* pf = fopen("data.txt","wb");//以二進制形式寫入打開 if(NULL == pf) { perror("fopen"); return -1; } //以二進制形式寫文件,把10000以二進制形式寫到文件中 int a =10000; fwrite(&a,sizeof(int),1,pf); //第一個參數:要寫入數據的地址 //第二個參數:要寫入數據的每一個的大小 //第三個參數:要寫入多少個數據 //第四個參數:文件指針 //關閉文件 fclose(pf); pf = NULL; return 0; }
執行后data.txt的結果
看不懂
開發者
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。