C语言写入文件会莫名其妙的换行??!
是这样子的,C语言程序实现把一个文件中的“edge[source x target y]”写入另一个文件并且转换成“a(x,y)=1;”形式(其中x,y是数字),我的核心代码如下(虽然写的有点儿长,但是其实不难,多谢各位大大阅读!)
while(num!=EOF)
{
if(num=='s')
{
num=fgetc(inFile);
if(num=='o')
{
num=fgetc(inFile);
if(num=='u')
{
num=fgetc(inFile);
if(num=='r')
{
num=fgetc(inFile);
if(num=='c')
{
num=fgetc(inFile);
if(num=='e')
{
//判断在target之后
fgetc(inFile);
//因为target后有以为空格所以再读一位
num=fgetc(inFile);
fputs("a(",outFile);
fputc(num,outFile);
num=fgetc(inFile);
while(num!=' ')//不一定是一位数,还有可能是多位数,判断一下
{
fputc(num,outFile);
num=fgetc(inFile);
}
fputc(',',outFile);
}
}
}
}
}
}
if(num=='t')
{
num=fgetc(inFile);
if(num=='a')
{
num=fgetc(inFile);
if(num=='r')
{
num=fgetc(inFile);
if(num=='g')
{
num=fgetc(inFile);
if(num=='e')
{
num=fgetc(inFile);
if(num=='t')
{
//判断在target后
fgetc(inFile);
//同样因为空格多读一位
num=fgetc(inFile);
fputc(num,outFile);
num=fgetc(inFile);
while(num!=' ')
{
fputc(num,outFile);
num=fgetc(inFile);
}
fputs(")=1;",outFile);
fprintf(outFile,"\n");
}
}
}
}
}
}
num=fgetc(inFile);
}
本来准备一行“a(x,y)=1;”之后换行,但结果却是这样的...
a(9
,1
)=1;
a(9
,3
)=1;
a(10
,3
)=1;
a(11
,1
)=1;
就是在“,”前会自动换行???
请问这是为什么?我把fputc,fprintf都试了也不行...都试了一天了...
求问求问,谢谢各位!