| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1174 人关注过本帖
标题:关于文件存储问题
只看楼主 加入收藏
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:10 
关于文件存储问题
试编写一个程序完成:从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束。
实验要求:输入事先已编好的程序,并运行该程序。分析运行结果是否正确。

我对文件保存很不熟悉,求修改下面程序。。
是不是一定要在文件夹里建立一个text.txt
用vc可以神奇地实现这段代码的要求吗=-=

#include<stdio.h>
main()
{
FILE *fp;
int i=0;
if((fp=fopen("text.txt","w"))==NULL)
puts("Error on opening output file text");

char string[100];
gets(string);


while(string[i]!='!')
if(string[i]>='a'&&string[i]<='z')
{string[i]=string[i]-32;
fputc(string[i],fp);
i++;
}

fclose(fp);
fp=fopen("test.txt","r");
fgets(string,strlen(str)-1,fp)
printf("%s",string);
fclose(fp);
}
搜索更多相关主题的帖子: include 文件夹 字符串 file 
2013-12-14 12:20
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
求指导。。。
2013-12-15 09:14
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:2 
if((fp=fopen("text.txt","w"))==NULL)// 创建文件这句就可以了
可以用VC 不过你的代码有问题
程序代码:
#include<stdio.h>  

 main()

 {

 FILE *fp;

 int i=0;

 if((fp=fopen("text.txt","w"))==NULL)

 puts("Error on opening output file text");

char string[100];        // 如果编译器不支持最新标准, 这句最好放在前面。支持就不用了。
 gets(string);


while(string[i]!='!')

 if(string[i]>='a'&&string[i]<='z')

 {string[i]=string[i]-32;

 fputc(string[i],fp);

 i++;

 }

fclose(fp);

 fp=fopen("test.txt","r");

 fgets(string,strlen(str)-1,fp) // 这句后面少了个分号 , str未定义,应该是string, 但最好用i。 1.你未包含头文件<string.h> 2. 长度可能比文件里面的长度长。
 printf("%s",string);

 fclose(fp);

 } 
C


2013-12-15 09:48
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
回复 3楼 pangshch
#include<stdio.h>
#include<string.h>
main()
{
char string[100];
gets(string);
FILE *fp;

if((fp=fopen("text.txt","w"))==NULL)
puts("Error on opening output file text");


int i;
for(i=0;string[i]!='!';i++)

if(string[i]>='a'&&string[i]<='z')
{string[i]=string[i]-32;
fputc(string[i],fp);
i++;
}

fclose(fp);
fp=fopen("test.txt","r");
fgets(string,strlen(string)-1,fp);
printf("%s",string);
fclose(fp);
}



还是不行,并且调试显示的错误很奇怪。
说我i 没定义什么的。。
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(7) : error C2275: 'FILE' : illegal use of this type as an expression
        c:\program files (x86)\microsoft visual studio\vc98\include\stdio.h(156) : see declaration of 'FILE'
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(7) : error C2065: 'fp' : undeclared identifier
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(9) : warning C4047: '=' : 'int ' differs in levels of indirection from 'struct _iobuf *'
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(9) : warning C4047: '==' : 'int ' differs in levels of indirection from 'void *'
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(13) : error C2143: syntax error : missing ';' before 'type'
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(14) : error C2065: 'i' : undeclared identifier
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(18) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'int '
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(18) : warning C4024: 'fputc' : different types for formal and actual parameter 2
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(22) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'int '
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(22) : warning C4024: 'fclose' : different types for formal and actual parameter 1
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(23) : warning C4047: '=' : 'int ' differs in levels of indirection from 'struct _iobuf *'
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(24) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'int '
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(24) : warning C4024: 'fgets' : different types for formal and actual parameter 3
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(26) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'int '
C:\Users\Administrator\Desktop\yen\新建文件夹\za\9-2.c(26) : warning C4024: 'fclose' : different types for formal and actual parameter 1
执行 cl.exe 时出错.
2013-12-15 10:36
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
把所有变量的定义放在最前面。
2013-12-15 12:08
BuBu高打火机
Rank: 1
来 自:四川
等 级:新手上路
帖 子:7
专家分:2
注 册:2013-12-5
收藏
得分:2 
创建文件的语句我习惯把权限都给他,这样就可以创建并读写数据
fopen("***.txt","rb+");
2013-12-15 14:13
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
但是我那个程序有些说我错的我都觉得不能修改。。
2013-12-16 17:23
华子hear
Rank: 3Rank: 3
来 自:陕西西安
等 级:论坛游侠
帖 子:57
专家分:104
注 册:2013-6-3
收藏
得分:2 
大写字母呢  能输出到文件吗?  if里面的i++是什么意思?
语法没有错误 是逻辑错误
2013-12-16 23:00
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
收藏
得分:0 
回复 8楼 华子hear
i++就是i+1不停读下去啊。。。
2013-12-17 09:34
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:2 
回复 9楼 yenga
就i++这句有问题呀,我指的是逻辑错误,编译问题楼上的已经说了。
如果想不出来,你就在while循环里每次把i的值打印出来分析一下。

[ 本帖最后由 embed_xuel 于 2013-12-17 10:26 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2013-12-17 09:54
快速回复:关于文件存储问题
数据加载中...
 
   



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

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