| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:[求助] 文件操作的问题
只看楼主 加入收藏
stonefish
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-8-25
收藏
 问题点数:0 回复次数:5 
[求助] 文件操作的问题

为什么写入文件后,是0~9ASCII码字符。
如何使输出的文件中的内容是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);
}

搜索更多相关主题的帖子: 文件 
2006-06-08 16:18
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
先改成C后我告诉你

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-06-08 16:55
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
fwrite这个函数我不熟悉,
不过,您可以改成fprintf(fp1,"%2d",a[i]);呀?

对不礼貌的女生收钱......
2006-06-08 17:48
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 

没太看懂楼主的意思,你指写入文件的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");
}







日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-06-08 18:29
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-08 21:25
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

[CODE]
#include <iostream.h>
#include <stdio.h>
int 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,"wt+"))==NULL)
{
cout<<"cannot open file\n";
exit(-1); /*这样好些*/
}

for(i=0;i<10;i++)
fprintf(fp1,"%d ",a[i]); /*这里fwrite()以%c写入*/

fclose(fp1);
}

[/CODE]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-06-08 23:08
快速回复:[求助] 文件操作的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028632 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved