| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 648 人关注过本帖
标题:如何将一文件的小写字符换成大写字符,并输出在原文件中,不是在文件尾追加 ...
只看楼主 加入收藏
wubihai7
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2010-3-4
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:5 
如何将一文件的小写字符换成大写字符,并输出在原文件中,不是在文件尾追加!
#include"stdio.h"
main()
{
    int c;
    char filename[80];
    FILE *fp;
    printf("Please input file path:");
    gets(filename);
    if((fp=fopen(filename,"r+"))==NULL)
    {
    printf("file %s can't opened \n",filename);
    exit(0);
    }
    while((c=fgetc(fp))!=EOF)
    {
     c='a'<=c&&c<='z'?c-'a'+'A':c;
    fputc(c,fp);
    }
    fclose(fp);
}
调试没错,但是输不出预期效果,本意:将磁盘某文件中的字符转换成大写,并在原文件中输出。
搜索更多相关主题的帖子: include opened 如何 file 
2010-12-26 20:51
威神
Rank: 2
等 级:论坛游民
帖 子:18
专家分:14
注 册:2010-12-11
收藏
得分:3 
用清屏函数,修改ASCII码后再输出
2010-12-26 20:55
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:3 
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{

    char c;
    char filename[80];
    char temp[1000];
    FILE *fp;
    printf("Please input file path:");
    gets(filename);
    if((fp=fopen(filename,"r+"))==NULL)
    {
        printf("file %s can't opened \n",filename);
        exit(0);
    }
    int i=0;
    while((c=fgetc(fp))!=EOF)
    {
        //c='a'<=c&&c<='z'?c-'a'+'A':c;
        if((c>='a')&&(c<='z'))
            c=c-'a'+'A';
        temp[i]=c;
        i++;
        //fputc(c,fp);
    }
    fclose(fp);
    fp=fopen(filename,"w+");
    int j=0;
    while(j<i)
    {
        c=temp[j];
        j++;
        fputc(c,fp);
    }
    fclose(fp);
}

If You Want Something, Go Get It, Period.
2010-12-26 21:42
wubihai7
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2010-3-4
收藏
得分:0 
以下是引用威神在2010-12-26 20:55:32的发言:

用清屏函数,修改ASCII码后再输出
能说具体点么
2010-12-27 01:10
wubihai7
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2010-3-4
收藏
得分:0 
以下是引用m21wo在2010-12-26 21:42:15的发言:

#include
#include
int main()
{
 
    char c;
    char filename[80];
    char temp[1000];
    FILE *fp;
    printf("Please input file path:");
    gets(filename);
    if((fp=fopen(filename,"r+"))==NULL)
    {
        printf("file %s can't opened \n",filename);
        exit(0);
    }
    int i=0;
    while((c=fgetc(fp))!=EOF)
    {
        //c='a'<=c&&c<='z'?c-'a'+'A':c;
        if((c>='a')&&(c<='z'))
            c=c-'a'+'A';
        temp=c;
        i++;
        //fputc(c,fp);
    }
    fclose(fp);
    fp=fopen(filename,"w+");
    int j=0;
    while(j
谢谢,做也会做,但是就是想知道为什么那样写不行
2010-12-27 01:11
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:3 
程序代码:
#include"stdio.h"
main()
{
    int c;
    char filename[80];
    long offset;
    FILE *fp;

    printf("Please input file path:");
    gets(filename);
    if((fp=fopen(filename,"r+"))==NULL)
    {
            printf("file %s can't opened \n",filename);
            exit(0);
    }
    while((c=fgetc(fp))!=EOF)
    {
            c=('a'<=c&&c<='z'?c-'a'+'A':c);
            /*printf("%c",c);*/
            offset=ftell(fp);
            fseek(fp,offset-1,SEEK_SET);
            fputc(c,fp);
            offset=ftell(fp);
            fseek(fp,offset,SEEK_SET);
    }
    fclose(fp);
}

2010-12-27 17:26
快速回复:如何将一文件的小写字符换成大写字符,并输出在原文件中,不是在文件尾 ...
数据加载中...
 
   



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

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