一个 for 语句给出的结果????
L_lin 2002-01-16 12:14:32 我用的是VC++6.0
Windows 2000 Professional
这个程序和功能是读取和打印一个 byte<1000 的a.txt文本文件。
可是为什么这样使用 for 语句会出现打印出来的不是a.txt,而是
打印的都是字符 buffer[1] 里的字符。
等来请教各位高手 :)
以下是有错误的原码:
#include <stdio.h>
#include <string.h>
const int buffer_size =1000;
void main()
{
FILE * fp;
int count=0;
char *buffer=new char[buffer_size];
int size;
if((fp=fopen("a.txt","r"))==0)
{
printf("\n The file is not find.");
return ;
}
size=fread(buffer,1,buffer_size,fp);
printf("\n this a.txt is %d bytes.\n",size);
printf("\n");
buffer[size]='\0';
for(count++;size!=-1;size--) //问题出现
if(buffer[count]!='\0')
putchar(buffer[count]); //打印有错误
printf("\n");
delete[] buffer;
}
1.这个错误为什么会发生,发生的原因是什么。(当然我会改这个错误)
2.为什么改写成下面的形式就可以?
for(;size!=-1;size--)
{
count++;
if(buffer[count]!='\0')
putchar(buffer[count]);
}
3.希望来了的朋友都能说说你们的看法。
4.谢谢大家,祝大家新年快乐,心想事成。:)