栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言问题之文件项目

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言问题之文件项目

求解C语言:请用记事本创建文件org.txt,往其中写入一组已排好序的整型数列,然后再由键盘输入一个整数,要求按原来排序的规律将它插入数列中,最后将数列仍写入文件org.txt中。
例如:原来整型数列为:3 6 9 11 56 70 100(数据间的分隔符为空格)。
若将65插入数列中,则插入后数列为:3 6 9 11 56 65 70 100。

#include 
#include
#include

#define OUTPUT   "org.txt" 
#define WIDTH    30

main(int argc,char *argv[]){
	
	FILE* fp;
	char  ch;
	int   scan_in;
	int   i,j,k,l;
    char  c;
    char  filedata[WIDTH][WIDTH];
	char *c_data;
    int   data_o[WIDTH],data_n[WIDTH];
 
    for(j=0;j                                        
        for(i=0;i                                      
          filedata[j][i] = '';                                                                  
        }
    }	
	
	//创建org.txt文件,输入数列以空格分隔,以#号结束
	if( ( fp=fopen( OUTPUT, "w" ) )==NULL ){
        printf("FILE OPEN FAIL[OUTPUT] !!!n"); 
    }else{
	    printf("FILE OPEN PASS[OUTPUT] !!!n");
	    printf("Enter the digital sequence, end with # :");

	    ch=getchar();
	    while(ch!='#'){
		fputc(ch,fp);//putchar(ch);
        ch=getchar();		
	   }
	}
	fclose (fp);
	
    //输入一个要插入数据	
	printf("input a new digital:");
	scanf("%d", &scan_in );                                                                                                                  
	
    //再打开org.txt文件 将字符型数据转成整数型 用来与新输入的数据比大小	
	if( ( fp=fopen( OUTPUT, " r" ) )==NULL ){
      printf("FILE OPEN FAIL[OUTPUT] !!!n"); 
    }else{
	  printf("FILE OPEN PASS[OUTPUT] !!!n");
	  i=0;j=0; 
      while( (c = fgetc( fp )) != EOF ){               
        //printf( "---c = %cn", c );                                
        filedata[j][i] = c;                                  
        filedata[j][i+1] = '';                           
        i++;                                                   
        if(c == 0x20){ //0x20表示空格                                      
          i=0;                                                 
          j++;                                                  
        }else{                                                  
          c_data = filedata[j];//数组指针  		  
          data_o[j] = atoi( c_data );//atoi将字符串里的数字字符转化为整形数,返回整形值。                             
          //printf("filedata[%d]= %s  n",j,filedata[j]);
		  //printf("data_o[%d]= %d  n",j,data_o[j]);
        }                                                      
      } 
      fclose (fp);	  
    }  
	
    //重新排序
	//printf("---j = %dn",j);  
    for(k=0;k<=j;k++){
		if(scan_in>data_o[k]){ data_n[k]=data_o[k]; }
	    else{
			 data_n[k]=scan_in; 
		     while(k<=j){ data_n[k+1]=data_o[k];k++; } 
			 break;
		}
	}
         
    //输出新数列到org.txt
	if( ( fp=fopen( OUTPUT, "w" ) )==NULL ){
        printf("FILE OPEN FAIL[OUTPUT] !!!n"); 
    }else{
	    printf("FILE OPEN PASS[OUTPUT] !!!n");
	}
	
	//printf("---k = %dn",k); 
    for(l=0;l<=k;l++){
	    fprintf(fp,"%d",data_n[l]);	
	    fprintf(fp,"%c",0x20);
	}
	 
	fclose (fp);
	
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号