我无法使用C上提供的任何文件处理函数将整数值13写入文件,包括putw()
,fprintf()
和fwrite()
。
#include <stdio.h>
#include <conio.h>
void main()
{
int i;
int arr[]={10, 11, 12, 13, 14, 15};
FILE *fp;
if (fp = fopen("test", "w")) {
for(i=0; i<6; i++) {
putw(arr[i], fp);
}
}
fclose(fp);
fp = fopen("test", "r");
while ((i=getw(fp))!= EOF) {
printf("%d, ",i);
}
fclose(fp);
getch();
}
给出输出
10, 11, 12, 3584, 3840,
和修改过的数组
int arr[]={13, 11, 12, 13, 14, 15};
给出输出
2816, 3072, 0, 14, 15,
您会注意到在遇到值13 后输出不符合预期。 任何人都可以帮我解决这个问题吗?
答案 0 :(得分:5)
看起来像CR / LF行结束处理。使用“b”模式修饰符打开二进制模式的文件,即:
if (fp = fopen("test", "wb")) {
fp = fopen("test", "rb");
答案 1 :(得分:0)
它肯定闻起来像CR / LF处理。原因是13是CR的ASCII ...我会把它作为二进制文件处理,让你负责行结束问题!