[求助] 文件操作的问题
为什么写入文件后,是0~9的ASCII码字符。
如何使输出的文件中的内容是0~9的数值?
#include<iostream.h>
#include<stdio.h>
void main()
{
FILE *fp1;
int a[10],i=0;
char infile[10];
cin>>infile;
for(i=0;i<10;i++)
a[i]=i;
if((fp1=fopen(infile,"wb+"))==NULL)
{
cout<<"cannot open file\n";
return;
}
for(i=0;i<10;i++)
fwrite(&a[i],sizeof(int),1,fp1);
fclose(fp1);
}
----------------解决方案--------------------------------------------------------
先改成C后我告诉你
----------------解决方案--------------------------------------------------------
fwrite这个函数我不熟悉,
不过,您可以改成fprintf(fp1,"%2d",a[i]);呀?
----------------解决方案--------------------------------------------------------
没太看懂楼主的意思,你指写入文件的ASCII是什么意思,没太明白,你那个就是把0-9写入文件,不需要用FWRITE,下面是写入和读出
#include <stdio.h>
#define ARRAY_SIZE 10
#define FILE_NAME_LENGTH 20
void input_array_data(int liv_array[]);
void write_file(int liv_array[]);
void clear_array(int liv_array[]);
void read_file(int liv_array[]);
void print_array(int liv_array[]);
int main(void)
{
int liv_array[ARRAY_SIZE]; /* 使用数组 */
input_array_data(liv_array); /* 输入数组数据 */
print_array(liv_array); /* 打印数组 */
write_file(liv_array); /* 数组数据写入文件 */
clear_array(liv_array); /* 置空数组 */
read_file(liv_array); /* 从文件中读取 */
print_array(liv_array); /* 打印数组 */
return 0;
}
void input_array_data(int liv_array[])
{
int i;
printf("enter every array element:\n");
for (i = 0; i < ARRAY_SIZE; i++)
{
scanf("%d", &liv_array[i]);
}
}
void write_file(int liv_array[])
{
FILE *fp;
int i;
char liv_filename[FILE_NAME_LENGTH];
printf("enter write filename: ");
scanf("%s", liv_filename);
if ((fp = fopen(liv_filename, "wt")) == NULL)
{
exit(1);
}
for (i = 0; i < ARRAY_SIZE; i++)
{
fprintf(fp, "%d ", liv_array[i]);
}
fclose(fp);
}
void clear_array(int liv_array[])
{
int i;
for (i = 0; i < ARRAY_SIZE; i++)
{
liv_array[i] = 0;
}
}
void read_file(int liv_array[])
{
FILE *fp;
int i;
char liv_filename[FILE_NAME_LENGTH];
printf("enter read filename: ");
scanf("%s", liv_filename);
if ((fp = fopen(liv_filename, "rt")) == NULL)
{
exit(1);
}
for (i = 0; i < ARRAY_SIZE; i++)
{
fscanf(fp,"%d", &liv_array[i]);
}
}
void print_array(int liv_array[])
{
int i;
for (i = 0; i < ARRAY_SIZE; i++)
{
printf("%d ", liv_array[i]);
}
printf("\n");
}
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽