名医指导 足不出户寻医问药
聚焦健康 权威的健康资讯
您的位置: 首页> 正文

...然后输出到一个磁盘文件中保存。 输入字符以!结

发布网友 发布时间:2024-10-24 10:01

我来回答

3个回答

热心网友 时间:2024-11-01 01:26

#include <stdio.h>
#include <conio.h>
int main()
{
char ch;
int a=0;
FILE *pfile=NULL;
char filename[20];
printf("Please input a filename:");
gets(filename);/*这里输入文件名时,最好在末尾加上.txt 方便退出程序后查看*/
if(!(pfile=fopen(filename,"w")))
{
printf("I can't open the file!");
exit(1);
}
printf("enter the char\n");
ch=getchar();
while(ch!='q') /*用q来跳出循环比较方便*/
{
fputc(toupper(ch),pfile);
putchar(toupper(ch));/*不明白这里为什么不是输入一个字符就立刻输出而是等到按下回车才全部一起输出!!! */
scanf("%c",&ch); /*经测试,输入一个字符输出对应的大写*/
}
fclose(pfile);
pfile=fopen(filename,"r");
rewind(pfile);{a++;}/*为什么这里用rewind()回到文件的 开头后运行是错的*/
printf("%d\n\n",a); /*这里的a只是测试之用,可知这里没有错误*/
ch=fgetc(pfile);
while(ch!=EOF)
{
printf("%c",ch);
ch=fgetc(pfile);
}
printf("the end of programing!\nenter any key to continue...");
getch();
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
代码如下:
#include <stdio.h>
#include <conio.h>
int main()
{
char ch;
FILE *pfile=NULL;
char filename[20];
printf("Please input a filename:");
gets(filename);
if(!(pfile=fopen(filename,"w")))
{
printf("I can't open the file!");
exit(1);
}
printf("enter the char\n");
ch=getchar();
while(ch!='q')
{
fputc(toupper(ch),pfile);
putchar(toupper(ch));
scanf("%c",&ch);
}
fclose(pfile);
pfile=fopen(filename,"r");
rewind(pfile);
ch=fgetc(pfile);
while(ch!=EOF)
{
printf("%c",ch);
ch=fgetc(pfile);
}
printf("the end of programing!\nenter any key to continue...");
getch();
}

热心网友 时间:2024-11-01 01:32

;"
上面这句话应该不对吧?小写字母全部转换成大写字母就是对应ASCII码减32,你这个'z'-'a'的值是25.
另外赞同楼上说的“还可以按照常识,比如操作文本文件都用ascii,对于二进制文件,用二进制。 ”但这不是绝对的,文本文件用ascii,主要是这些信息本来就是以自然文本的形式表达,你用记事本打开这些ASCII码存储的文本,一目了然知道了想要反应的信息。如果按照二进制的方式读写这些本来要用ASCII码表达的东西,用记事本打开就只能看到乱码。但并不是说以二进制操作就不能正确获取内容。用二进制操作文本文件通常比用ASCII方式生成的文件要小得多。

热心网友 时间:2024-11-01 01:31

//////////////////////////////////////问题引用///////////////////////////////////////////
ch=getchar();
while(ch!='!')
{
fputc(toupper(ch),pfile);
//putchar(toupper(ch));//不明白这里为什么不是输入一个字符就立刻输出而是等到按下回车才全部一起输出!!!
ch=getchar();
}
///////////////////////////////回答/////////////////////////////////
用getchar();时,在键盘上按一个字符后,要按回车才能读取进去,问题不出在putchar()上。

getchar();的用途是从从标准输入流读取一个字符,读回车符时退出。getchar();永远只向缓存中输入一个字符。
用getchar();时,在键盘上按一个字符后,要按回车才能读取进去;用getch();时,在键盘上按一个字符马上就被读取进去,不用按回车,因此可以作为“按任意键继续”的执行语句。

看下面的修改:(但有无回显的问题)
ch=getch();
while(ch!='!')
{
fputc(toupper(ch),pfile);
//putchar(toupper(ch));
ch=getchar(); //但是windows下getch()读取回车换行时 不读入换行符号
//结果输入回车换行时,仅仅回到行首
}
///////////////////////////////////////////////////////
getch()是从键盘接受一个无回显(屏幕看不见输入字符,就是没有输出到显示设备),不缓冲的输入,并返回对应按键的字符
一般用于等待一个输入,让屏幕暂停一下,方便看程序执行的结果
///////////////////////////////////////////////////////

修改一下,看详细结果:
必须读一次 就do-while 算了
do{
ch=getch();//ar();
fputc(toupper(ch),pfile);
fflush(pfile); //为看结果立即刷新缓冲区
printf("\nNote: char(ch)="); //提示=号后面是结果
putchar(toupper(ch)); //输出getch()读入的字符
printf("\nNote: int(ch)=%d:",ch); //看读入字符c的ascii码
printf("\nNote: '\\n'=%d:\n",'\n'); //看'\n'的ascii码
} while(ch!='!');

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
flcose(pfile); //增加 关闭文件后,自动刷新缓冲区 没有可读写时的刷新问题
pfile=fopen(filename,"r");
上面两句保留(不注释)应该没有问题,你的第二个问题,可能如下:

rewind(pfile);//为什么这里用rewind()回到文件的 开头后运行是错的?????
//你开始打开的是只写的文件,rewind()之后 仍然不能读的拉
//改法:或者打开为可读可写的, 或者关闭后重新打开来读
//当你用可读可写的方式打开时,rewind后可能也没有输出,需要刷新
//缓冲区fflush(pfile)的字符内容到文件后 再rewind才有内容可读
//方式:fflush(pfile); rewind(pfile);
ch=fgetc(pfile);
while(ch!=EOF)
{
printf("%c",ch);
fflush(stdout); //刷新标准输出缓冲区 否则,缓冲区不满 不是必要 最后结束一样显示
//不会立即显示字符的(除了输出'\n'外)
ch=fgetc(pfile);
}

printf将"%c"输出到标准输出文件的缓冲区中(缓冲区在内存上),fflush(stdout)将缓冲区中的内容强制刷新到,并将其中的内容输出到显示器上("\n"回车换行 == fflush(stdout)+换行)
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
彻底详细解释 一般纳税人可以 开具普通发票给一般纳税人吗? 如何护理肌肤能改善肤色暗沉? 有什么方法可以改善皮肤暗沉的问题? 除了使用美白产品,还有哪些方式可以改善肌肤暗沉的问题? 怎样护肤可以改善肤色暗沉的问题? 如何做淘宝优惠券推广?能赚钱吗? 抖音商品如何上架优惠卷?优惠券怎么做? 我想问一下我有个店铺,法人不是我经营者是我,得怎么打官司? ug是什么(关于ug是什么的基本详情介绍) ug是什么意思(ug是什么) 超越前端Beyond Frontend — 吉密斯/gMIS 增加点选/PickUp概览功能_百 ... 最好用的 5 个 Vue select 单选多选下拉组件 - 卡拉云 web前端对表格某一字段进行万能查询包括(>,<,=)。字段的选值使用复合... 公司装修除甲醛除味 桑蚕丝领带怎么洗 真丝领带清洗注意事项 【真丝领带怎么洗】真丝领带怎么保养 真丝领带皱了怎么办 是什么影响了西湖龙井的耐泡度 有关格林童话好词好句的句子摘抄(梦境奇幻之旅) 中国驰名商标有哪些?? 中国品牌排行榜前十名 和老公吵架冷战一周怎么办 狗狗去世要怎么处理 小米12spro全面屏手势怎么设置 全面屏手势设置方法介绍 小米12spro全面屏手势怎么设置 全面屏手势设置教程介绍 拜见岳父大人3剧情介绍 电影<巴尼的人生>的女主角(纽约做电台直播)是谁饰演的? 有一部电影,男主和儿子都很懒,妻子是家庭主妇。整天在家忙个不挺,_百... Lisa Hoffman品牌介绍 哈维最后的机会剧情简介 达斯汀霍夫曼现状 达斯汀 霍夫曼老婆 华为mate10保时捷怎么装鸿蒙系统 淘宝买家差评威胁在哪里投诉?如何投诉? 看电视下载什么软件 王者荣耀名字空白代码怎么打_王者荣耀名字空白代码设置介绍 上海帅康油烟机清洗服务有限公司帅康油烟机清洗诀窍及注意事项_百度知 ... 上海饭店油烟机清洗 上海酒店油烟机清洗公司可靠吗? 请问冷却塔 冷吨数(RT) 117.9 冷却水量m3/h(28℃) 80 是什么意思?_百度... 改签后退票比直接退票要便宜吗? 换窗户如何防水 窗户换掉如何防水 装修换窗如何防水处理 换窗户如何做防水 wps设置一级标题二级标题 wps设置一级标题二级标题 桃花几瓣 桃花有哪些花型 南京租房一般多少钱 长沙房子租金多少钱一平方米 巴基斯坦人朝拜泰姬陵吗? EXO里的chen喜欢中国女孩吗? 巴基斯坦人朝拜泰姬陵吗? exo成员中对女人有什么要求 EXO-M成员分别喜欢什么样的女生 QQ拼音输入法不能用Ctrl+Shift换键 刚买的vivo S6T,请问首次充电有什么讲究吗? photoshop cs 版本新建中名称行无法用输入法输入汉字,但是粘贴可以输入... ...cs6 后 .拼音输入法就不能在photoshop下输入中文了?如何解决?_百度... 搜狗输入法的问题。我原来中文状态打qq.com是可以打出来的,现在不行了... 搜狗输入法在QQ聊天中突然打不出字了要怎么办, 搜狗输入法在QQ中输入不了,系统提示找不到文件correction.ini 你好,我新买的VIVO S6智能手机,没电之后就充电,两个小时就充满了,不知... 我电脑输入法用键盘切换怎么变成了Shttl+Alt了,以前是Shttl+Ctrl切换... 键盘不能正常切换输入法,并显示按shtft键五次可使用粘滞键怎么回事... ...中文,QQ和网页中都只能打出英文,卸载了搜狗输入法又重新安装之后还是... 国际包括什么 为什么我的PS打英文字没问题,就是不能打出中文字~ 巴基斯坦人朝拜泰姬陵吗? QQ输入法不能用ctrl+shift切换 只能用 ctrl+空格切换 怎么调啊_百度知 ... 锦鲤的饲料能味喂草鲤鱼吗 ,从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一... 微信上的地区名称有哪些特点? 搜狗输入法修复后还是无法输入中文怎么办? 京东没收到货能退款吗? ...原来装的大型单机游戏还可以玩吗?如果备份注册表再导入注册表之后就... ...将小写字母全部转换成大写字母,然后输出到一个磁盘文件" 软件汉化哪家好 ...将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中... 12月21号在京东商城买东西送人现在还没到,打客服要求退款却告诉我货到... ...将小写字母全部转换成大写字母,然后输出到屏幕 阳光人寿有实力嘛? 跪求骑马与砍杀战团局域网联机版本 搞错了,这才是最后一谈。书名号和括号txt全集下载 阳光保险对比中国人寿,哪个实力强些? 公司保险一般每月几号交? 初元科技园属于哪个区 ...的小写字母全部转换成大写字母,然后输出到一个磁盘文件"test.txt... ...将每个单词的首字母换成大写字母,然后输出到一个磁盘文件“test”中... 骑马与砍杀可不可以联机玩?哪个版本可以?必须是那种电脑不在一起还能...
  • 焦点

最新推荐

猜你喜欢

热门推荐