关于C语言读取和写入文件

「已注销」 2005-07-10 08:11:30
大侠们,帮帮小弟吧!
要编写一个C语言程序,从输入文件("input.txt")读取字符,然后对它进行相应的转换,最后显示输出并写入输出文件("output.txt").
要求是:
1)从input.txt中读取一篇章存入数组temp中;
2)以行为单位读取输入文件,把所有字符的ASCII码值右移4位,然后把右移后的字符的ASCII码值和原字符的ASCII码相加;
3)显示输出转换后的字符,并写入output.txt文件中;
4)输入文件的存放格式是:每行宽度均小于80个字符,最多50行.

帮帮忙吧..非常感谢!
小弟在线等候~~~~~~
...全文
963 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
牛知道 2005-07-11
  • 打赏
  • 举报
回复
//刚才忘记看要求了,SORRY,加入数组的写入
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE *fp1,*fp2;
char t,str[50][80];
int i=0,j=0,r=0;

if((fp1=fopen("d:\\input.txt","r"))==NULL)
{
fprintf(stderr,"error 无法打开 d:\\input.txt");
getchar();
return -1;
}
if((fp2=fopen("d:\\output.txt","w"))==NULL)
{
fprintf(stderr,"error 无法打开 d:\\output.txt");
getchar();
return -1;
}
while((t=fgetc(fp1))!=EOF)
{
if( j>=50 ) break;
if( i>=80 )
{
str[j][i]='\0';
fprintf(fp2,"\n");
j++;
i=0;
if( j>=50 ) break;
}
str[j][i] = t;
printf("ASCII: %4d + %4d = %4d\n", \
str[j][i],str[j][i]>>4,str[j][i]+(str[j][i]>>4));
t+=t>>4;
fputc(t,fp2);
i++;
}
str[j][i] = t;
t+=t>>4;
fputc(t,fp2);


fclose(fp1);
fclose(fp2);
printf("\n转换完毕");
getchar();
return 1;
}
牛知道 2005-07-11
  • 打赏
  • 举报
回复
//devc 编译通过
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE *fp1,*fp2;
char t;
int i=0,j=0,r=0;

if((fp1=fopen("d:\\input.txt","r"))==NULL)
{
fprintf(stderr,"error 无法打开 d:\\input.txt");
getchar();
return -1;
}
if((fp2=fopen("d:\\output.txt","w"))==NULL)
{
fprintf(stderr,"error 无法打开 d:\\output.txt");
getchar();
return -1;
}
while((t=fgetc(fp1))!=EOF)
{
if( j>50 ) break;
if( i%79==0 && i!=0 )
{
fprintf(fp2,"\n");
j++;
}
t+=t>>4;
fputc(t,fp2);
i++;
}
fclose(fp1);
fclose(fp2);
printf("\n转换完毕");
getchar();
return 1;
}
caucyniu 2005-07-11
  • 打赏
  • 举报
回复
我怎么知道那些关键字是在哪个头文件的呢?

在C语言里Ctrl F1出现帮助,比如getch();
你按g所有g 开头的g函数都出来啦,找到getch()
里面有例子,当然还有头文件,
以后多看看例子吧,
FBIq 2005-07-11
  • 打赏
  • 举报
回复

for(i=0;i<50;i++)
for(j=0;j<80;j++)
{
a[i][j]=fgetc(fp1);
if(a[i][j]==EOF)
break;
t=a[i][j]+(a[i][j]>>4);
printf("%d+%d=%c\n",a[i][j],a[i][j]>>4,t);
fputc(t,fp2);
}
「已注销」 2005-07-11
  • 打赏
  • 举报
回复
可以了,昨晚想了几个钟,终于可以了.
谢谢各位大侠哦!
KenYuan2016 2005-07-11
  • 打赏
  • 举报
回复
昏死,怎么贴这样的帖子
「已注销」 2005-07-10
  • 打赏
  • 举报
回复
不对,应该是当读取完后程序还会继续写入到output文件中,而后面的程序加上去的就是乱码了!
「已注销」 2005-07-10
  • 打赏
  • 举报
回复
FBIq(aiby) 大哥:
用二维数组的那段代码不行哦.不能执行到最后!
K 2005-07-10
  • 打赏
  • 举报
回复
都是基础阿,我晕
nicknide 2005-07-10
  • 打赏
  • 举报
回复
"wasoxi(我就是(没意思~~~)) "大哥。
我怎么知道那些关键字是在哪个头文件的呢?


:
www.msdn.com
  • 打赏
  • 举报
回复
mark
HR-TANG 2005-07-10
  • 打赏
  • 举报
回复
都讲的差不多了:)
「已注销」 2005-07-10
  • 打赏
  • 举报
回复
"wasoxi(我就是(没意思~~~)) "大哥。
我怎么知道那些关键字是在哪个头文件的呢?
wasoxi 2005-07-10
  • 打赏
  • 举报
回复
加上 #include <conio.h>
#include <stdlib.h>
FBIq 2005-07-10
  • 打赏
  • 举报
回复
你的编译器问题,可能没有这个函数或者没包含头文件!你可以删掉或者用别的函数代替,它只是起暂停的!
「已注销」 2005-07-10
  • 打赏
  • 举报
回复
"getch();"
"exit(0);"
这两段代码会出问题,信息如下:
"error C2065: 'getch' : undeclared identifier"
"error C2065: 'exit' : undeclared identifier"
FBIq 2005-07-10
  • 打赏
  • 举报
回复
#include<stdio.h>
void main(void)
{
FILE *fp1,*fp2;
char a[50][80],t;
int i,j,r=0;

if((fp1=fopen("d:\\input.txt","r"))==NULL)
{
fprintf(stderr,"error");
getch();
exit(0);
}
if((fp2=fopen("d:\\output.txt","w"))==NULL)
{
fprintf(stderr,"error");
getch();
exit(0);
}
while(fgets(a[r++],80,fp1)!=NULL);
for(i=0;i<r;i++)
for(j=0;j<80;j++)
{
t=a[i][j]+(a[i][j]>>4);
printf("%d+%d=%c\n",a[i][j],a[i][j]>>4,t);
fputc(t,fp2);
}
fclose(fp1);
fclose(fp2);
getch();
return;
}
「已注销」 2005-07-10
  • 打赏
  • 举报
回复
FBIq(aiby) 大哥
如果我用二维数组应该怎么做呢?
我用temp[50][80]会出错哦!
zhousqy 2005-07-10
  • 打赏
  • 举报
回复
好题!
FBIq 2005-07-10
  • 打赏
  • 举报
回复
是不是这样:
#include<stdio.h>
void main(void)
{
FILE *fp1,*fp2;
char a[80],t;
int i;

if((fp1=fopen("d:\\input.txt","r"))==NULL)
{
fprintf(stderr,"error");
getch();
exit(0);
}
if((fp2=fopen("d:\\output.txt","w"))==NULL)
{
fprintf(stderr,"error");
getch();
exit(0);
}
while((fgets(a,80,fp1))!=NULL)
{
for(i=0;a[i]!=0;i++)
{
t=a[i]+(a[i]>>4);
printf("%d+%d=%c\n",a[i],a[i]>>4,t);
fputc(t,fp2);
}

}
fclose(fp1);
fclose(fp2);
getch();
return;
}
加载更多回复(2)

69,380

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧