标题:怎么老是不能实现,编译无错
只看楼主
abcd8912751
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2011-11-3
结帖率:0
 问题点数:0 回复次数:6 
怎么老是不能实现,编译无错
从键盘输入若干行字符(每行长度不等),输入后把它们存到一个磁盘文件中。再从该磁盘文件中读出这些数据,把其中小写字母转换成大写字母后在显示屏上输出
代码如下:单步执行在“”卡住
#include<stdio.h>
#include<Ctype.h>
main()
{
    char a[10],b[100];
    int i;
    FILE *fp1;
    fp1=fopen("d:\\78.txt","w+");
    for(i=0;i<4;i++)
    {
        scanf("%s",a);
        fprintf(fp1,"%s",a);
    }
    fscanf(fp1,"%s",b);
    for(i=0;i<100;i++)
       if(islower(b[i]))
            b[i]=toupper(b[i]);
    printf("%s",b);

}
搜索更多相关主题的帖子: 字母 include 显示屏 
2012-06-05 09:36
abcd8912751
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2011-11-3
得分:0 
单步执行时在“fscanf(fp1,"%s",b);
 ”语句时就下不去了
2012-06-05 18:34
c443916233
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2012-6-6
得分:0 
水平低下啊。。。看不懂
2012-06-06 06:35
cuijunchao
Rank: 5Rank: 5
来 自:湖南桂东
等 级:职业侠客
威 望:3
帖 子:132
专家分:386
注 册:2012-4-4
得分:0 
你这个操做有不规范类,你把一个文件写入以后,要关闭文件,再打开进行字母转换。这样才保证你的文件指针开始是指向文件头的。? char a[10],b[100];
??? int i;
??? FILE *fp1;
??? fp1=fopen("d:\\78.txt","w+");
??? for(i=0;i<4;i++)
??? {
????????scanf("%s",a);
????????fprintf(fp1,"%s",a);这句运行后Fp指向文件未。
??? }这里加fclose(fp);
fp=fopen(自己补上);
??? fscanf(fp1,"%s",b);
??? for(i=0;i<100;i++)
?????? if(islower(b[i]))
????????????b[i]=toupper(b[i]);
??? printf("%s",b);
2012-06-06 10:12
JollyRoger
Rank: 2
等 级:论坛游民
帖 子:14
专家分:32
注 册:2012-5-28
得分:0 
以下是引用cuijunchao在2012-6-6 10:12:51的发言:

你这个操做有不规范类,你把一个文件写入以后,要关闭文件,再打开进行字母转换。这样才保证你的文件指针开始是指向文件头的。? char a[10],b[100];
??? int i;
??? FILE *fp1;
??? fp1=fopen("d:\\78.txt","w+");
??? for(i=0;i<4;i++)
??? {
????????scanf("%s",a);
????????fprintf(fp1,"%s",a);这句运行后Fp指向文件未。
??? }这里加fclose(fp);
fp=fopen(自己补上);
??? fscanf(fp1,"%s",b);
??? for(i=0;i<100;i++)
?????? if(islower(b))
????????????b=toupper(b);
??? printf("%s",b);
我也实现不了
2012-06-07 21:19
wangyunzhong
Rank: 2
等 级:论坛游民
帖 子:16
专家分:13
注 册:2012-6-6
得分:0 
#include<stdio.h>
#include<Ctype.h>
int main()
{
    char a[10],b[100];
    int i;
    FILE *fp1;
    fp1=fopen("E:78.txt","w+");
    for(i=0;i<4;i++)
    {
        scanf("%s",a);
        fprintf(fp1,"%s",a);
    }
    fclose(fp1);
    fp1=fopen("E:78.txt","r");
    fscanf(fp1,"%s",b);
    for(i=0;i<100;i++)
       if(islower(b[i]))
            b[i]=toupper(b[i]);
    printf("%s",b);
    return 0;

}
在写操作完成以后之后要关闭文件,若无关闭操作,这些数据只能在缓冲区中而未真正写到文件中。另外,还需判断打开文件是否成功,
if((fp1=fopen("E:78.txt","r"))==NULL)
{
printf("Can not open the file\n");
exit(0);
}
不过一般情况下都能打开成功,我一般都懒得写.
2012-06-08 00:48
JollyRoger
Rank: 2
等 级:论坛游民
帖 子:14
专家分:32
注 册:2012-5-28
得分:0 
以下是引用wangyunzhong在2012-6-8 00:48:40的发言:

#include
#include
int main()
{
    char a[10],b[100];
    int i;
    FILE *fp1;
    fp1=fopen("E:78.txt","w+");
    for(i=0;i<4;i++)
    {
        scanf("%s",a);
        fprintf(fp1,"%s",a);
    }
    fclose(fp1);
    fp1=fopen("E:78.txt","r");
    fscanf(fp1,"%s",b);
    for(i=0;i<100;i++)
       if(islower(b))
            b=toupper(b);
    printf("%s",b);
    return 0;

}
在写操作完成以后之后要关闭文件,若无关闭操作,这些数据只能在缓冲区中而未真正写到文件中。另外,还需判断打开文件是否成功,
if((fp1=fopen("E:78.txt","r"))==NULL)
{
printf("Can not open the file\n");
exit(0);
}
不过一般情况下都能打开成功,我一般都懒得写.
你们都运行过吗?
2012-06-08 19:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-370820-1-1.html




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

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