本文介绍了C / C ++读取和写入长字符串的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有我格式化这样的城市的名单:
{镇,...},
{...},
...
阅读并建立每个乡镇和创建town1,town2,工程....
问题是,当我把它输出,1号线工程{镇,...},但第二行崩溃。
任何想法,为什么?
我有[区域] [镇](EXCEL表)。
因此,通过多少个乡镇每个地区重复都在上面。
每个文件都有每行1区/镇。
judete包含每个区域重复1次。
AB
SD
个人计算机
....
orase包含城镇名单。
town1
town2
....
orase指数包含每个城市的区域
AB
AB
AB
AB
SD
SD
SD
个人计算机
个人计算机
...
我想这样{town1,town2,...}每一行(行5)的输出包含在同一行(行5)属于区域从judete镇。
下面是我的code:
#包括LT&;&stdio.h中GT;
#包括LT&;&string.h中GT;炭judet [100] [100];
烧焦orase [50] [900000];
炭奥拉斯[100],CEVA [100];无效的主要()
{ INT I = 0,NR;
FILE * judete,*指数,* ORASE,*输出;
judete =的fopen(judete.txt,室温);
指数=的fopen(orase-index.txt,室温);
ORASE =的fopen(orase.txt,室温);
输出= FOPEN(output.txt的,重量); 而(!的feof(judete))
{
与fgets(judet [Ⅰ],100,judete);
我++;
} NR = I;
TMP的char [100];
诠释,其中= 0; 对于(i = 0; I< NR;我++)
的strcpy(orase [I]中,); 而(!的feof(指数))
{
与fgets(TMP,100指数);
对于(i = 0; I< NR;我++)
{
如果(的strstr(judet [I],TMP))
{
与fgets(奥拉斯,100,ORASE);
strcat的(CEVA,\\);
奥拉斯[strlen的(奥拉斯)-1] ='\\ 0';
strcat的(CEVA,奥拉斯);
的strcat(CEVA,\\,);
strcat的(orase [I],CEVA);
打破;
} }
}
烧焦了[900000]。 对于(i = 0; I< NR;我++)
{
的strcpy(出来,);
strcat的(出,{);
strcat的(出,orase [I]); //这里失败
fprintf中(输出,%S} \\ n,出来);
}}
结果我从运行code得到的是:
解决方案
You don't clear orase array, beacause your loop
for(i-0;i<nr;i++)
strcpy(orase[i],"");
by mistake ('-' instead of '=') executes 0 times.
这篇关于C / C ++读取和写入长字符串的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!