C。。。头疼死了。。求思路!!!求指导!!
/*程序 代号:0001
功能:将文件1.txt中的数据按照重复次数降序去重整理
步骤:
版本 0.4
{
用二维数组~~
大体恢复版本0.2思路
}
版本0.3
{
struck str
{
int namber;
char str
}
1.不采用数组。。采用结构体。。这样没有了行数的限制
缺陷:定义多个结构体变量。。占用大量空间。。况且还不能自动定义变量。。
}
版本 0.2
{
1.将数据排序(按ascill码排序)。。得数组一
2.从数组一挨个读取字符串。如果和数组一下一个字符串相同,该字符串的数量就加一。。不同。就将该字符串赋值给数组二
}
版本 0.1
{
1.将每个字符串复制两份
2.将第一组数据去重整理
3.将第一组的第一个字符与第二组每个字符想比较。记下重复的次数
4.按照重复的次数将第一组数据降序排序。。
5.输出
}
备注:
1.要用到结构体
2.文件打开读取的练习
3.字符串比较的练习
http://blog.代码有参考价值。。【while的结束字符判断】
*/
#include<stdio.h>
#include<process.h>
#define false -1
#define true 1
int main(void)
{
//功能变量区
FILE *file; //文件指针
int fileh; //文件行数
char CO[100000000000000][100];//100000000000000可以编译通过。。不过提示。占用的内存超过256MB。。可能无法运行。。
//临时变量区
char a;
int i,j;
//打开文件
restart:
system("cls");
printf(" 本程序将从1.txt文件中读取数据,并进行处理。\n 文件最多:100000000000000行\n单行字符个数最大为:100\n ");
getchar();
file=fopen("1.txt","r");
if(file==NULL)
{
printf("文件1.txt打开失败!请确定文件是否存在。");
getchar();
goto restart;
} else{
printf("文件1.txt成功打开。\n");
getchar();
}
//得出文件行数,判断是否能处理
fileh=0;
while((a=fgetc(file))!=EOF)
{
if(a=='\n')
{
fileh++;
} else{
a=fgetc(file);
if(a==EOF)
{
fileh++;
break;
}
}
}
//开始录入数据《《《就是这一段。。求指导~~!!》》》
for (i=0;i<(fileh+1);i++)
{
fgets(CO[i],100,file);
printf("刚刚读取的是第%d行数据,内容为%s\n",i,CO[i]);
getchar();
}
}
求指导!!求思路!!
QQ1041501142
欢迎加好友。。。另外。。自己新建了一个QQ群。。喜欢研究语言的可以加入。。为了避免发广告的嫌疑。。就步伐群号了。。