永发信息网

帮忙看下我的这个程序代码

答案:1  悬赏:50  手机版
解决时间 2021-05-17 06:52
  • 提问者网友:绫月
  • 2021-05-17 00:06
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define num  10//
void main()
{
int i;
char j;
FILE* stream;
if((stream=fopen("d:\\data.txt","w+"))==NULL)
{
printf("no foud any files;\n");
}
else
{
for(i=0;i<num;++i)
{
  scanf("%c",&j);
  fprintf(stream,"%c",j);
}
}
fclose(stream);
char ch; //
if((stream=fopen("d:\\data.txt","w+"))!=NULL)//
{
while(!feof(stream))
{
fread(&ch,sizeof(char),1,stream);
if(ch==' ')
{
printf(" ");
}
else
{
if(ch=='\n')
{
printf(" ");
}
else
{
  if(ch=='<')
{
printf("<");
}
  else
  {
   if(ch=='>')
{
printf(">");
}
   else
   {
    printf("%c",ch);
    //
   }
//
  }
  //
}
//
}
//
}
}
else
{
printf("no foud any data;\n\n");
}
fclose(stream);
}
//输出来是乱码,为什么?
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-05-17 01:07

你这段程序很混乱,又长,估计好多人都不愿意看完,大致分析一下,程序分两段,第一部分,从键盘读入字符写入到d:\data.txt,这部分应该没问题。


第二部分从刚才的文件读出数据显示在屏幕上,


    这部分就问题多多了!!!


首先


fclose(stream);
char ch; //
if((stream=fopen("d:\\data.txt","w+"))!=NULL)//   这句应该不正确


你既然要读出文件,应该用"r",而不能用“w+”
之后大量的if ,既混乱又容易出错,建议改用 case语句


另外,"<"、">"的判断似乎无意义。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯