如何用C语言将文本文件中内容读入程序,并按照第二列的数据进行从大到小排序。 用c语言如何读入并使文本文件按某一列排序输出?

c\u8bed\u8a00\u8bfb\u53d6\u6587\u4ef6\u4e00\u5217 \u6587\u4ef6\u4ee5\u67d0\u5217\u7684\u6570\u636e\u6309\u5927\u5c0f\u6392\u5217

1.\u7528fgets\u51fd\u6570\u53ef\u4ee5\u8bfb\u53d6\u6587\u4ef6\u4e2d\u67d0\u884c\u7684\u6570\u636e\uff0c\u67d0\u5217\u6570\u636e\u5c31\u5fc5\u987b\u4e00\u4e2a\u4e00\u4e2a\u8bfb\u5165\u6bcf\u884c\u7684\u7b2c\u51e0\u4e2a\u5b57\u7b26\uff0c\u518d\u5b58\u5165\u5230\u4e00\u4e2a\u5b57\u7b26\u4e32\u5f53\u4e2d\u30022.\u4f8b\u7a0b\uff1a
#include#includevoid main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; //\u7b2c\u4e09\u884c\uff0c\u7b2c\u56db\u5217 FILE *fp = fopen("data.txt","r"); while(fgets(c,100,fp)){ //\u8bfb\u5165\u6bcf\u884c\u6570\u636e i--; if(i==0) strcpy(a,c); //\u8bfb\u5230\u7b2c\u4e09\u884c\u6570\u636e b[k++]=c[j-1]; //\u628a\u6bcf\u884c\u7684\u90a3\u5217\u5b57\u7b26\u62f7\u5230b\u4e2d } b[k]=0; printf("\u7b2c%d\u884c\u6570\u636e\uff1a%s\n",i,a); printf("\u7b2c%d\u5217\u6570\u636e\uff1a%s\n",j,b); fclose(fp);}3.\u9047\u5230\u6b64\u95ee\u9898\uff0c\u5982\u679c\u6b64\u529f\u80fd\u4e0d\u662f\u5e94\u7528\u8f6f\u4ef6\u7684\u4e00\u90e8\u5206\uff0c\u5219\u53ef\u4ee5\u901a\u8fc7\u6279\u5904\u7406\u7684for\u5faa\u73af\u547d\u4ee4\u6765\u8fdb\u884c\u63d0\u53d6\uff0c\u76f8\u5bf9\u6bd4\u4f7f\u7528c\u8bed\u8a00\u6548\u7387\u3002

\u4f7f\u7528\u6587\u4ef6\u64cd\u4f5c\u51fd\u6570\u6253\u5f00\u6587\u4ef6\uff0c\u8bfb\u53d6\u4fe1\u606f\uff0c\u8fdb\u884c\u6392\u5e8f\uff0c\u91cd\u65b0\u5199\u5165\u5e76\u8986\u76d6\u539f\u6587\u4ef6\u3002
\u4f8b\u7a0b\uff1a
#include #include int comp(const void* a,const void* b){ return *(int*)a-*(int*)b; }int main(){ FILE *p;//\u6587\u4ef6\u6307\u9488 int i,j,a[1000]; p = fopen("\u6587\u4ef6\u540d\u79f0", "r");//\u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e32\u662f\u4f60\u6587\u4ef6\u8def\u5f84,\u8def\u5f84\u4e2d\u7684\\u8981\u5199\u6210\\,\u6587\u4ef6\u540d\u5fc5\u987b\u5e26\u540e\u7f00 for(i=0;fscanf(p,"%d",a+i)!= EOF;i++);//EOF\u4e3a\u6587\u4ef6\u5c3e(end of file),\u8bfb\u53d6\u6587\u672c\u4e2d\u7684\u6570\u636e qsort(a,i,sizeof(int),comp); //\u7531\u5c0f\u5230\u5927\u6392\u5e8f,\u6bd4\u8f83\u65b9\u5f0f\u7531comp\u51fd\u6570\u6307\u5b9a\u3002 fclose(p); p = fopen("\u6587\u4ef6\u540d\u79f0", "w");//\u4ee5\u5199\u5165\u65b9\u5f0f\u91cd\u65b0\u6253\u5f00 for(j=0;j<i;j++) fprintf(p,"%d ",a[j]);//\u91cd\u65b0\u8f93\u5165\u6392\u5e8f\u540e\u7684\u6570\u636e fclose(p) return 0;}

#include <stdio.h>
#include <string.h>
#include <malloc.h>
typedef struct stt
{
    char c1[9];
    int c2;
    struct stt *next;
}STT;
void readFile(FILE *fp);
void writeFile(FILE *fp);
void printfSTT();//打印链表
void px();//将链表按c2降序排列
STT *sttHead=NULL,*sttTail=NULL;
int main()
{
    FILE *fp;
    if((fp=fopen("c:\\list.txt","rt+"))==NULL)
    {
        printf("can't open File!");
        exit(1);
    }
    sttHead=(STT *)malloc(sizeof(STT));
    sttHead->next=NULL;
    readFile(fp);
    printfSTT();
    px();
    printf("-----------排序后-------------
");
    printfSTT();
    writeFile(fp);
    return 0;
}
void px()
{
    STT *sttHeadSave1=sttHead,*sttHeadSave2=NULL,sttSave,*nextSave;
    while(sttHeadSave1->next!=NULL)
    {
        sttHeadSave2=sttHeadSave1->next;
        while(sttHeadSave2->next!=NULL)
        {
            if((sttHeadSave1->next->c2)<(sttHeadSave2->next->c2))
            {
                sttSave=*(sttHeadSave1->next);
                nextSave=sttHeadSave1->next->next;
                *(sttHeadSave1->next)=*(sttHeadSave2->next);
                sttHeadSave1->next->next=nextSave;
                nextSave=sttHeadSave2->next->next;
                *(sttHeadSave2->next)=sttSave;
                sttHeadSave2->next->next=nextSave;
            }
            sttHeadSave2=sttHeadSave2->next;
        }
        sttHeadSave1=sttHeadSave1->next;
    }
}
void printfSTT()
{
    STT *sttHeadSave=sttHead;
    printf("-----------打印链表-------------
");
    while(sttHeadSave->next!=NULL)
    {
        printf("%s  %d
",sttHeadSave->next->c1,sttHeadSave->next->c2);
        sttHeadSave=sttHeadSave->next;
    }
}
void readFile(FILE *fp)
{
    int c2;
    char c1[9];
    STT *sttNew;
    fseek(fp,0,SEEK_SET);
    printf("-----------读取文件到链表-------------
");
    while(fscanf(fp,"%s %d",c1,&c2)!=-1)
    {
        sttNew=(STT *)malloc(sizeof(STT));
        sttNew->next=NULL;
        strcpy(sttNew->c1,c1);
        sttNew->c2=c2;
        if(sttHead->next==NULL)
            sttHead->next=sttNew;
        else
            sttTail->next=sttNew;
        sttTail=sttNew;
    }
}
void writeFile(FILE *fp)
{
    fseek(fp, 0, SEEK_SET);
    fseek(fp, 0, SEEK_END);
    printf("-----------开始写入文件-------------
");
    STT *sttHeadSave=sttHead;
    fprintf(fp,"%s","-----------排序后-------------
");
    while(sttHeadSave->next!=NULL)
    {
        fprintf(fp,"%s %d%s",sttHeadSave->next->c1,sttHeadSave->next->c2,"
");
        sttHeadSave=sttHeadSave->next;
    }
    printf("------------写入完成-------------
");
}


  • 濡備綍鐢–璇█璁鏂囨湰鏂囦欢涓鍌ㄥ瓨鐨勬暟鎹鍏ヤ竴涓簩缁存暟缁
    绛旓細include <stdio.h> include <string.h> include <stdlib.h> int main(){ FILE *fp;char line[1000];char wLine[1000];double SIMUL[100][100];int lineCount = 0;char *delim=" ";int ii,jj;fp = fopen("1.txt","r");if( fp==NULL){ printf("fopen error!\ ");return -1;}...
  • c璇█璇诲彇txt鏂囦欢鍐呭
    绛旓細鐢–璇█浠巘xt鏂囦欢涓鍙栨暟鎹紝鍙互浣跨敤C鏍囧噯搴撴枃浠惰嚜甯︾殑鏂囦欢鎺ュ彛鍑芥暟杩涜鎿嶄綔銆備竴銆佹墦寮鏂囦欢锛欶ILE *fopen(const char *filename, const char *mode);鍥犱负txt鏂囦欢涓烘枃鏈枃浠讹紝 鎵浠ユ墦寮鏃堕夋嫨鐨刴ode搴斾负"r"鎴栬"rt"銆備簩銆佽鍙栨枃浠讹細璇诲彇鏂囦欢搴旀牴鎹枃浠跺唴瀹圭殑鏍煎紡锛屼互鍙婄▼搴忚姹傦紝閫夋嫨璇诲彇鏂囦欢鐨勫嚱鏁般...
  • C璇█鎬庢牱灏嗘枃鏈枃浠朵腑鐨鍐呭璇诲彇鎵撳嵃
    绛旓細if(NULL==fp) return -1;//瑕佽繑鍥為敊璇唬鐮 while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); //浠鏂囨湰涓璇诲叆骞跺湪鎺у埗鍙版墦鍗板嚭鏉 fclose(fp);fp=NULL;//闇瑕佹寚鍚戠┖锛屽惁鍒欎細鎸囧悜鍘熸墦寮鏂囦欢鍦板潃 return 0;}
  • 濡備綍鐢–璇█灏嗘枃鏈枃浠朵腑鍐呭璇诲叆绋嬪簭,骞舵寜鐓х浜屽垪鐨勬暟鎹繘琛屼粠澶у埌...
    绛旓細include <stdio.h>#include <string.h>#include <malloc.h>typedef struct stt{ char c1[9]; int c2; struct stt *next;}STT;void readFile(FILE *fp);void writeFile(FILE *fp);void printfSTT();//鎵撳嵃閾捐〃void px();//灏嗛摼琛ㄦ寜c2闄嶅簭鎺掑垪STT *sttHead=NULL,*sttTail=NULL...
  • C璇█濡備綍璇鍐鏂囦欢?
    绛旓細C璇█璇诲啓鏂囦欢鏈変袱绉嶆柟寮忥細 涓绉嶆槸鏂囨湰鏂瑰紡锛屽彟涓绉嶆槸2杩涘埗鏂瑰紡銆傛棩鏂囷紝涓枃锛寀nicode, 閮借鐢2杩涘埗鏂瑰紡銆傛枃浠跺唴瀹圭殑缂栫爜鍜岀紪鐮佺殑杞寲锛屽悓涓绉嶇紪鐮佺殑澶х鎴栧皬绔紪鐮侊紝閮借鑷繁瀹夋帓澶勭悊銆侰璇█涓嶇璇诲啓閮借閫氳繃fopen鍑芥暟鏉ワ紝鍏朵腑mode鍙傛暟鍙互鎺у埗浠ヤ簩杩涘埗鎵撳紑杩樻槸浠ユ枃鏈柟寮忔墦寮銆俧open鐨勫嚱鏁板師鍨嬶細FILE *...
  • 鍦C璇█涓,涓句緥璇存槑濡備綍鎵撳紑涓涓鏂囨湰鏂囦欢,骞惰鍏鏂囦欢涓鐨勬暟鎹
    绛旓細1.棣栧厛锛屼娇鐢╒S鏋勫缓涓涓柊鐨勭┖椤圭洰锛岀劧鍚庣洿鎺ュ崟鍑籵k銆2.鍗曞嚮newitem閫夐」涓篶缂栬瘧鍣ㄥ垱寤轰竴涓柊鐨刢鏂囦欢锛屽苟杈撳叆main.c鏂囦欢銆3.鐒跺悗鍒涘缓涓涓柊鐨勮繑鍥C鏂囦欢锛屽涓嬫墍绀恒4.灏嗕笂闈㈢殑鍙傝冧唬鐮佸鍒跺埌main.c鏂囦欢涓锛屽苟鐩存帴缂栬瘧瀹冦5銆佺紪璇戝畬鎴愬悗锛岃繍琛宔xe绋嬪簭锛屾墽琛屽悗鏄剧ずTXT鏂囦欢鍐呭銆
  • c璇█鎬庝箞鎻愬彇鏂囨湰鏂囦欢涓鎴戞兂瑕佺殑涓浜涗俊鎭?
    绛旓細1銆C璇█鏍囧噯搴撴彁渚涗簡涓绯诲垪鏂囦欢鎿嶄綔鍑芥暟銆傛枃浠舵搷浣滃嚱鏁颁竴鑸互f+鍗曡瘝鐨勫舰寮忔潵鍛藉悕(f鏄痜ile鐨勭畝鍐)锛屽叾澹版槑浣嶄簬stdio.h澶鏂囦欢褰撲腑銆備緥濡傦細fopen銆乫close鍑芥暟鐢ㄤ簬鏂囦欢鎵撳紑涓庡叧闂紱fscanf銆乫gets鍑芥暟鐢ㄤ簬鏂囦欢璇诲彇锛沠printf銆乫puts鍑芥暟鐢ㄤ簬鏂囦欢鍐欏叆锛沠tell銆乫seek鍑芥暟鐢ㄤ簬鏂囦欢鎿嶄綔浣嶇疆鐨勮幏鍙栦笌璁剧疆銆2銆佷緥绋嬶細include...
  • c璇█ 鎬庝箞璇绘枃浠朵腑鐨勬眽瀛
    绛旓細绋嬪簭瀹氫箟浜嗘枃浠舵寚閽坒p锛屼互璇鏂囨湰鏂囦欢鏂瑰紡鎵撳紑鏂囦欢鈥渄:\\jrzh\\example\\ex1_1.c鈥濓紝骞朵娇fp鎸囧悜璇ユ枃浠躲傚鎵撳紑鏂囦欢鍑洪敊锛岀粰鍑烘彁绀哄苟閫鍑虹▼搴忋傜▼搴忕10琛屽厛璇诲嚭涓涓瓧绗︼紝鐒跺悗杩涘叆寰幆锛屽彧瑕佽鍑虹殑瀛楃涓嶆槸鏂囦欢缁撴潫鏍囧織锛堟瘡涓枃浠舵湯鏈変竴缁撴潫鏍囧織EOF锛夊氨鎶婅瀛楃鏄剧ず鍦ㄥ睆骞曚笂锛屽啀璇诲叆涓嬩竴瀛楃銆傛瘡璇讳竴娆...
  • C璇█濡備綍璇诲彇TXT鍏ㄩ儴瀛楃?
    绛旓細浣犲彲浠ヤ娇鐢ㄨ緭鍏ヨ緭鍑洪噸瀹氬悜鏉ュ皢TXT鏂囨湰涓殑瀛楃鍐呭瀵煎叆绋嬪簭涓紝鎴栬呬娇鐢ㄦ爣鍑咰搴撳嚱鏁帮細fopen()鍜宖getc();鍏堜娇鐢╢open()鍑芥暟鎵撳紑TXT鏂囨湰鏂囦欢锛岀劧鍚庝娇鐢╢getc璇诲彇鏂囨湰鏂囦欢涓鐨勫瓧绗︺傝鍙栧叏閮ㄦ枃鏈腑鍏ㄩ儴瀛楃鍙互浣跨敤涓涓獁hile寰幆鍔犲垽鏂槸鍚﹁鍙栧埌鏂囦欢缁撳熬鏉ュ疄鐜帮細char ch锛泈hile((ch= fgetc(fp)) != EOF)杩...
  • C璇█鎬庝箞浠嶵XT鏂囦欢涓璇诲叆鏁版嵁?
    绛旓細1.鐢"璁颁簨鏈"鍒涘缓a.txt鏂囦欢,淇濆瓨鍦ㄤ竴涓鏂囦欢澶逛腑,璁句繚瀛樺湪d:\涔嬩笅 2.缂栧啓绋嬪簭,骞惰繍琛 include <stdio.h> int main( ){ int a[10][4]; /*鍋囧畾涓嶈秴杩10琛,姣忚涓瀹氭湁4涓厓绱*/ int i,j;FILE *fp;/*鎵撳紑鏂囦欢*/ fp=fopen("d:\\a.txt","r"); /*鍋囪a.txt鍦╠鐩樻牴鐩綍涓*/ ...
  • 扩展阅读:扫一扫题目出答案 ... 文本生成视频 ... 怎样写代码自己做编程 ... 如何自己编写头文件并调用 ... c++常用头文件大全 ... 一个完整的文本解读过程 ... 文本文档做小游戏 ... c语言入门程序 ... c语言如何编辑头文件例子 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网