| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 376 人关注过本帖
标题:文件不懂的地方 请高手指教下
只看楼主 加入收藏
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
文件不懂的地方 请高手指教下
程序代码:
#include<stdio.h>
#include<stdlib.h>

int main()
{
    FILE *a;
    char ch,smalet[10];

    printf("please input the file name\n");
    scanf("%s",smalet);
     if((a=fopen(smalet,"w"))==NULL)
    {
        printf("can't open the file\n");
        exit(0);
    }

    ch=getchar();
    ch=getchar(); //if no this line what would be

    while(ch!='!')
    {
        if(ch>=97&&ch<=122)
                ch=ch-32;
        fputc(ch,a);
        putchar(ch);
        ch=getchar();
    }
    putchar('\n');
    fclose(a);
    return 0;
}
1.这个用‘w'写的文件放在哪?
2.在输完所有字符 回车 接下来是不是对每个字符进行处理?
3.每次处理完一个字符后 为什么会自动进行处理下一个字符?例如 我输入abcdef enter后它是先判断第一个字符 完了之后为什么自动进行判断第二个字符b?是不是有getchar() 它会自动检查第二个字符?
4.每次putchar()输出的字符为什么不是在屏幕上,也就是说每进行一次putchar()屏幕就应该有一个字符?那是不是集中处理后再统一输出的?
2011-05-28 16:04
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
还没学到文件操作 帮顶吧。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-28 16:26
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:1 
楼主想干什么?
2011-05-28 16:45
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
第一题: 放在你工程的当前目录下

第二题: 其实你的while循环执行之前 你只把所有的字符写到显示器上了  但是并没有送入缓冲区

当你输入回车 或者是转义字符ctrl + z ,+ c之后你屏幕上的数据进入缓冲区 然后就是执行循环录入你的数据 你的是

从缓冲去里面读出一个字符处理一个字符 直到读出‘!’为止 这是你处理数据的过程

第三题: 这个很简单吧 你程序怎么写的就怎么做啊 你的while循环结束条件是'!'当然要重复执行getchar直到读出'!'呀

第四题: 程序被你冤枉了 他确实是一个字符一个字符输出到显示器上的 只不过速度太快了 你可以在while循环里面单步走 你就不会冤枉你的程序了

                                         
===========深入<----------------->浅出============
2011-05-28 17:15
kyzrong
Rank: 2
等 级:论坛游民
帖 子:7
专家分:19
注 册:2010-9-20
收藏
得分:1 
看你写的,如果你想输入abcdef 的话。
屏幕应该输出aabbccddeeff 的啊!
2011-05-28 18:52
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
回复 5楼 kyzrong
经过我的验证   首先申明写的代码没错输入abcdDh 输出ABCDH
2011-05-28 19:26
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
回复 4楼 laoyang103
解答很详细 谢了
2011-05-28 19:29
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
回复 2楼 ansic
呵呵  谢谢 其实我也没学到我们老师只讲到指针就不讲了  我打算自学完  正在拼命看书  呵呵 加上快考试了  时间也不多啊
2011-05-28 19:30
快速回复:文件不懂的地方 请高手指教下
数据加载中...
 
   



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

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