为什么c语言代码编译生成储存直接成了dat文件

为什么c语言代码编译生成储存直接成了dat文件,将代码编译生成过后,储存下来直接成为了dat文件,我想生成txt文件,请问应该如何修改

img

你fopen的时候写的文件名时什么啊???你写的就是yezhu.dat吧,改成yezhu.txt就行啦

改后缀就是啊

你把代码贴出来

FILE *fp;
fp = fopen("yezhu.txt", "wt");

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7800478
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:C语言:如何实现在txt文件中删除超链接、统计单词数量、生成单词列表 (文本流操作并解决乱码)
  • 除此之外, 这篇博客: C语言txt文件排序中的 使用插入排序对txt文件排序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 如果一个txt文件中含有几类信息,比如第一列是组名,第二列是对应数目,现在要将他们组内进行排序,写入新的txt文件中。
    例如txt文件内容如下:
    9000     12.32
    9000     11.25
    9000     13.36
    9100   9.89
    9100  6.32
    9200    7.32
    9200    8.14
    
    //思路:先按第一列的分组信息分组,分完每一组后将这一组用插入排序排好序写入txt文档,再分下一个组
    fp = fopen(file_name,"r");
    num= 9000;
    while(fgets(recbuffer,99,fp))
    {
    	sscanf(recbuffer, "%d\t%lf", &gfre, &peakpow[i]);
    	while(gfre == fre)
    	{
    		strcpy(senbuffer[i], recbuffer);
    		sscanf(senbuffer[i], "%*d\t%lf", &peakpow[i++]);
    		if(fgets(recbuffer,99,fp))
    			sscanf(recbuffer, "%d\t%*lf", &gfre);
    		else
    			break;			
    	}
    	InsertionSortChar(senbuffer, peakpow, i, filenum); 
    	fre+=100;
    	i=0;
    	strcpy(senbuffer[i], recbuffer); 
    	sscanf(senbuffer[i], "%*d\t%lf", &peakpow[i++]);    
    }
    fclose(fp);
    
    void InsertionSortChar(char A[][100], double peak[], int n, int filenum)
    {
    	int j,p;
    	double tmp;
    	char tmp1[100];
    	static int title_flag = 1;
    	FILE *fp = NULL; 
    	
    	for(p = 1; p < n; p++)
    	{
    		tmp = peak[p];
    		strcpy(tmp1, A[p]);
    		for(j = p; j > 0 && peak[j-1] < tmp; j--)
    		{
    			memset(A[j], 0, 100);
    			strcpy(A[j], A[j-1]);
    			peak[j] = peak[j - 1];
    		}
    		peak[j] = tmp;
    		memset(A[j], 0, 100);
    		strncpy(A[j], tmp1, 100);
    	}
    
    	for(p = 0; p < n; p++)
    	{
    		fp = fopen(file_name,"a+");
    		fprintf(fp, "%s", A[p]);
    		fclose(fp); 
    	}
    }
    

    写入文件也可以用fputs(),使用fopen、fprintf、fclose组合的原因有二:
    1.每写一行打开或关闭 文件,则在程序运行过程中可以自己打开对应txt文档看进行到了哪一步。如果不进行打开关闭的操作,在程序运行时打开文件时,会无响应。
    2.同样的循环中使用fputs,当行数较多时输出的txt文件中会漏掉几行,还没有找到原因。
    但是,每次打开关闭文件会消耗很多时间。