通过一个小程序看putc和getc的用法

#include<iostream>
using namespace std;

void write()
{
	FILE *fp;
	fp = fopen("myData", "wb");
	
	int i = -1;
	while (i <= 256)
		putc(i++, fp);

	fclose(fp);
}

void read()
{
	FILE *fp;
	fp = fopen("myData", "rb");

	int i = -1;
	while (i++ <= 256)
		cout << getc(fp) << "\t";
    
	fclose(fp);

	cout << endl;
}

int main()
{
	write();
	read();

	return 0;
}


       控制台上的结果为:

255     0       1       2       3       4       5       6       7       8
9       10      11      12      13      14      15      16      17      18
19      20      21      22      23      24      25      26      27      28
29      30      31      32      33      34      35      36      37      38
39      40      41      42      43      44      45      46      47      48
49      50      51      52      53      54      55      56      57      58
59      60      61      62      63      64      65      66      67      68
69      70      71      72      73      74      75      76      77      78
79      80      81      82      83      84      85      86      87      88
89      90      91      92      93      94      95      96      97      98
99      100     101     102     103     104     105     106     107     108
109     110     111     112     113     114     115     116     117     118
119     120     121     122     123     124     125     126     127     128
129     130     131     132     133     134     135     136     137     138
139     140     141     142     143     144     145     146     147     148
149     150     151     152     153     154     155     156     157     158
159     160     161     162     163     164     165     166     167     168
169     170     171     172     173     174     175     176     177     178
179     180     181     182     183     184     185     186     187     188
189     190     191     192     193     194     195     196     197     198
199     200     201     202     203     204     205     206     207     208
209     210     211     212     213     214     215     216     217     218
219     220     221     222     223     224     225     226     227     228
229     230     231     232     233     234     235     236     237     238
239     240     241     242     243     244     245     246     247     248
249     250     251     252     253     254     255     0


 

        用UltraEdit打开myData(用记事本方式或文本方式打开,结果为乱码), 结果为:

FF 00 01 02 03 04 ..... FC FD FE FF 00

       

       之前已经说过:写读文件过程的本质是编解码. 由上面的结果可以看出, -1按照putc方式编码后,形成的是255, 255按照getc方式解码后,形成的是 255,所以-1就变成了255. 而256按照putc方式编码后形成了0, 0按照getc方式解码后形成的是 0 , 所以256也就变成了0.

 

你可能感兴趣的:(通过一个小程序看putc和getc的用法)