C程序请高手指教,谢谢了.

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:32:20
文本中有一列数据,我要一行一行的取.然后将这一行数据的倒数第二个数字加1将最后一个数字变为0.(如:12345则转成12350 同样 12345.12也转为12350 其中如果要处理的数为12395 则转化为12400).最后将这个文本中所有的数据处理结果写到别一个文本文档中.
这是我写的.但是只能读一行.
main()
{
FILE *fp,*fpp;
char ch;
int i;
int j;
char line[10];
if((fp=fopen("c:\\a.txt","r"))==NULL)
{
printf("\n Don't Open Files!");
getch();
exit(1);
}else{
i=0;
ch=fgetc(fp);

while(ch!=EOF)
{
while(ch!='\n'&&ch!='.')
{
line[i]=ch;
i++;
ch=fgetc(fp);
}

j=i-1;
line[i-2]=(char)(line[i-2]+1);
line[i-1]='0';

if((fpp=fopen("c:\\b.txt","wt+"))==NULL)
{
printf("error! File must is NULL");
exit(0);
} else {
for(i=0;i<j+1;i++)
{
fputc(line[i],fpp);
}

又是你呀,你没有描述清楚问题呀,你那个a.txt里面究竟是些什么东西,是否每一行都是一个float数?

下面的程序调试通过:
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
main()
{
  FILE *fp,*fpp;
  long a;
  double x;
  if((fp=fopen("c:\\a.txt","r"))==NULL)
  {
    printf("\n Don't Open Files!");getch();exit(1);
  }
  if((fpp=fopen("c:\\b.txt","wt+"))==NULL)
  {
    printf("error! File must is NULL");exit(0);
  }
  while( !feof(fp) && fscanf(fp,"%lf",&x))
  {
    a=x;
    a=a/10;
    a++;
   &n