C语言问题之文件项目

C语言问题之文件项目,第1张

求解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<WIDTH;j++){                                        
        for(i=0;i<WIDTH;i++){                                      
          filedata[j][i] = ';'}                                                                  
        }
    //创建org.txt文件,输入数列以空格分隔,以#号结束	
	
	if
	(( = fpfopen(, OUTPUT"w" ) ) ==NULL) printf{
        ("FILE OPEN FAIL[OUTPUT] !!!\n");} 
    elseprintf{
	    ("FILE OPEN PASS[OUTPUT] !!!\n");printf
	    ("Enter the digital sequence, end with # :");=

	    chgetchar();while
	    (!=ch'#')fputc{
		(,ch)fp;//putchar(ch);=
        chgetchar();}		
	   }
	fclose
	( )fp;//输入一个要插入数据	
	
    printf
	("input a new digital:");scanf
	("%d",& )scan_in ;//再打开org.txt文件 将字符型数据转成整数型 用来与新输入的数据比大小	                                                                                                                  
	
    if
	(( = fpfopen(, OUTPUT" r" ) ) ==NULL) printf{
      ("FILE OPEN FAIL[OUTPUT] !!!\n");} 
    elseprintf{
	  ("FILE OPEN PASS[OUTPUT] !!!\n");=
	  i0;=j0;while 
      (( =c fgetc () fp )!= EOF ) //printf( "---c = %c\n", c );                                {               
        [
        filedata]j[]i= ; c[                                  
        filedata]j[+i1]= ';' ++;                           
        iif(                                                   
        ==0x20c ) //0x20表示空格                                      ={ 0
          i;++;                                                 
          j}else                                                  
        =[{                                                  
          c_data ] filedata;j//数组指针  		  []
          data_o=jatoi ( ); 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 = %d\n",j);    
	
    for
	(
    =0k;<=;k++j)kif({
		[]scan_in>data_o)k[]{ data_n=k[]data_o;k}else [
	    ]{
			 data_n=k;whilescan_in( 
		     <=)k[j+{ data_n1k]=[]data_o;k++;k}break ; 
			 }}
		//输出新数列到org.txt
	if
         
    (
	(= fopen fp(,"w" OUTPUT) ) == NULL)printf ({
        "FILE OPEN FAIL[OUTPUT] !!!\n");}else 
    printf({
	    "FILE OPEN PASS[OUTPUT] !!!\n");}//printf("---k = %d\n",k); 
	for
	
	(
    =0l;<=;l++k)lfprintf({
	    ,"%d"fp,[]data_n)l;fprintf(	
	    ,"%c"fp,0x20);}fclose
	(
	 
	) ;fpreturn0
	
	; }

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1498846.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-25
下一篇2022-06-25

发表评论

登录后才能评论

评论列表(0条)

    保存