| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1344 人关注过本帖
标题:[求助][讨论] 这个程序为什么编译通过,但无法正确运行,老是出错。
取消只看楼主 加入收藏
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
结帖率:88.89%
收藏
 问题点数:0 回复次数:7 
[求助][讨论] 这个程序为什么编译通过,但无法正确运行,老是出错。

/* 以下是一个C程序,该程序用以将用户输入的字符口串存入text.txt的文件中*/

#include<stdio.h>
main()
{
FILE *fp;
char str[100],filename[10];
int i;
if((fp=fopen("text.txt","w"))==NULL)
{
printf("da kai wen jian shi bai!\n");
exit(0);
}
printf("成功打开文件\n\n\n请输入你想保存的字符\n\n\n");
gets(str);
for(i=0;str[i];i++)
{
if(str[i]>='a'&&str[i]<='z')
str[i]-='a'-'A';
fputc(str[i],fp);
}
fclose(fp);
fp=fopen("test.txt","r");
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
}


/*执行程序年后叫输入要保存的字符串,回车后显示以下错误: */



 /*WRITE.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。*/
 /*如果你正处在进程中,信息可能丢失。*/
 /*关于此错误的其他信息,请单击此处。 */
 /*调试 关闭*/



 /*单击“单击此处显示的信息:
错误签名
AppName: write.exe AppVer: 0.0.0.0 ModName: ntdll.dll
ModVer: 5.1.2600.2180 Offset: 00001010
要查看关于错误报告的技术信息,请单击此处
单击后显示:Exception information
Code: 0xc0000005 flages: 0x00000000
Record: 0x00000000000000000 address: 0x000000007c921010


System Information
Windows NT 5.1 Build: 2600

还有类似的其它许多信息,大多都是一些十六进制数据
*/

搜索更多相关主题的帖子: 编译 运行 
2007-04-21 14:33
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
对了,我是在C-Free3.5和TC2.0下都试过,都是在windows xp上试验的。
我猜是不是windows xp的系统的自我保护作用?
2007-04-21 16:00
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 

同志们,帮帮忙啊

2007-04-21 20:17
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 

#include<stdio.h>
main()
{
FILE *fp;
char str[100],filename[10];
int i;
if((fp=fopen("text.txt","w"))==NULL)
{
printf("da kai wen jian shi bai!\n");
exit(0);
}
printf("成功打开文件\n\n\n请输入你想保存的字符\n\n\n");
gets(str);
for(i=0;str[i];i++)
{
if(str[i]>='a'&&str[i]<='z')
str[i]-=32;
fputc(str[i],fp);
}
fclose(fp);
fp=fopen("test.txt","r");
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
}

我改了,运行了,可是还是不行啊/
请再帮我看看.

2007-04-22 10:02
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
我想程序应该错在


fclose(fp);
fp=fopen("test.txt","r");
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);


因为我把这段删除了后,程序正常。


但是我不知道错在哪儿。
书上又没有说清楚 fgets的具体用法

2007-04-22 10:28
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
ok.thanks.

是的.现在好了.谢谢你.
原来是粗心,建立的名字为text.txt,而打开的名字成了test.txt,出现的错误应该是找不到文件的错误吧.
2007-04-22 11:25
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 

七楼的同志:
谢谢你。

我想把这个程序改一下,当出现找不到文件时,在程序中返回错误,不至于程序关闭:可是,改了后又出现了错误,这又是怎么回事啊?谢谢你了,再帮我看看吧?

#include<stdio.h>
#include <stdlib.h>

int main(void)
{
FILE *fp;
char str[100]; //filename[10];

int i;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("da kai wen jian shi bai!\n");
exit(0);
}
printf("成功打开文件\n\n\n请输入你想保存的字符\n\n\n");
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='a'&&str[i]<='z')
str[i]-=32;
fputc(str[i],fp);
}
fclose(fp);


if(fp=fopen("test.txt","r")==NULL)
{
printf("不能打开文件,请检查文件名是否正确!\n\a");
return;
}

fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
return 0;

}

2007-04-22 11:31
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 

谢谢.我明白了,应该是赋值运算的优先级比等于运算符高的大兵团吧.

2007-04-28 18:34
快速回复:[求助][讨论] 这个程序为什么编译通过,但无法正确运行,老是出错。
数据加载中...
 
   



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

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