C语言 :如何建立文本文件,编程把文本文件中的字符串逆序输出?

如题所述

文本文件使用windows记事本就可以建立,每个字符串一行,用回车换行就行。

程序代码:

#include  <stdio.h>

int main()

{      FILE *fp; 

       int k,i=0,j;

       char str[1024][20]; //可以存放1024个串,每个串小于20个字符 

    if((fp=fopen("D:\\dat.txt","r"))==NULL)  //文本文件使用 “r”打开读入,文件在D的根目录下 

    { printf("error");    //如果打开文件失败就输出error

return 0; }

       while(!feof(fp))                    //读入文件内容,直到文件结束 

      {  fscanf(fp,"%s",str[i++]);  }  //二维数组每行一个字符串 

    fclose(fp);                          //关闭文件

    for(k=i-1;k>=0;k--)               //从最后一个字符串开始输出

            for(j=strlen(str[k])-1;j>=0;j--)       //从每个串的最后一个字符开始,输出到第一个字符结束

             {        printf("%c",str[k][j]);       //倒序输出str记录的文件内容 

}

       printf("\n"); 

    system("pause"); 

文本文件的内容:

abc

sdf

efghij

klmn

opqrst

uvwxyz

输出结果如图

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-11
我这是打开一个已经存在了的文本文件test.txt,
D:\\cprogram\\test.txt这个是路径
#include <stdio.h>
int main()
{
FILE *fp; //定义文件指针
int i;
int j;
char c;
char ch[1024*20]; //这个是存放读取的数据的因为不知道有多少数据,所以我设的比较大
memset(ch,0,sizeof(ch)); //初始化内存
if((fp=fopen("D:\\cprogram\\test.txt","rb"))==NULL)
{
printf("error");//如果打开文件失败就输出error
return 0;
}
c=fgetc(fp);//获得一个字符存放于c中
for(i=0;;i++)//开始赋值
{
if(c!=EOF)//如果c中的不是文件结束标记则赋值,并且读取下一个
{
ch[i]=c;
c=fgetc(fp);
}
else
{
fclose(fp);
break;
}//否者关闭文件退出赋值
}
for(j=i;j>=0;j--)
{
printf("%c",ch[j]);//倒序输出ch里的值
}
return 0;
}本回答被网友采纳
第2个回答  2012-06-12
同意楼上