| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1308 人关注过本帖
标题:为什么这样创建不了“output.txt”文本文件???
只看楼主 加入收藏
狸之城堡
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-28
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:9 
为什么这样创建不了“output.txt”文本文件???
为什么这样创建不了“output.txt”文本文件???下面代码是要把随机产生的数输出到文本文件中,冒泡排序后还要追加到这个文件中。。。。

#include "stdafx.h"
#include "stdlib.h"
#include "time.h"

int main(){
  int i=0,n,a[20],j,k;
  srand(time(NULL));
  for(i=0;i<20;i++){
      a[i]=i;
      while(!0){
          n=rand()%20;
          if(a[n]!=1){
          printf("%d ",n);
          a[n]=1;
          if(i++==20) break;
      }
  }
      printf("%d ",a[i]);
  }
  FILE *fp,*rfp;

 fp=fopen("output.txt","w");
  if(fp==NULL){
      printf("cannot open file"); return false ;}
  else
      for(i=0;i<20;i++)
          fprintf(fp,"%d",a[i]);
   fclose(fp);
  for(i=0;i<19;i++){
      for(j=i+1;j<20;j++){
          if(a[j]<a[i]){
              k=a[j];a[j]=a[i];a[i]=k;}
  }
 }
 rfp=fopen("output.txt","a");
    if(rfp==NULL){
      printf("cannot open file"); return false ;}
  else
      for(i=0;i<20;i++) fprintf(rfp,"%d",a[i]);
    fclose(rfp);

    return 0;
}
搜索更多相关主题的帖子: 文本文件 include 
2014-03-01 17:06
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
收藏
得分:5 
貌似循环退出不了,
if(i++==20) break;
把这里改为++i试试。。

。。。。。。。。。。。
2014-03-01 17:32
狸之城堡
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-28
收藏
得分:0 
回复 2楼 ljx小子
还是不行呢,,能产生一组随机数就是无法创建output.txt,
fp=fopen("output.txt","w");这个不行吗
2014-03-01 18:49
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
请百度搜索 fopen的用法   一般要有写权限  都有+字样  比如r+ w+等  一般有得是直接创建 比如w+ 有得是文件必须存在  比如 r+

DO IT YOURSELF !
2014-03-01 18:52
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
收藏
得分:0 
回复 3楼 狸之城堡
w是为了写打开一个文件,w+是为了写创建/打开一个文件,所以那里改为w+呢

。。。。。。。。。。。
2014-03-01 20:51
狸之城堡
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-28
收藏
得分:0 
回复 5楼 ljx小子
已改,还是不行。。。。。
2014-03-01 21:32
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用狸之城堡在2014-3-1 21:32:07的发言:

已改,还是不行。。。。。
请贴出修改后代码
另:什么是不行  究竟哪里不行

DO IT YOURSELF !
2014-03-01 21:49
狸之城堡
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-28
收藏
得分:0 
回复 7楼 wp231957
#include "stdafx.h"
#include "stdlib.h"
#include "time.h"

int _tmain(int argc, _TCHAR* argv[])
{   
    int i=0,n,a[20]={0};
    srand(time(NULL));
    for(i=0;i<20;i++) a[i]=i;
    while(1){
     n=rand()%20;
     if(a[n]!=-1){ printf("%d ",n);a[n]=-1;if((++i)==20) break;
    }
    }
   FILE *fp; int j,k;
   fp=fopen("output.txt","w+");
   if(fp==NULL){printf("cannot open file\n");exit(0);}
   else
       for(i=0;i<20;i++) fprintf(fp,"%d  ",a[i]);
   for(i=0;i<19;i++){
       for(j=i+1;j<20;j++){
           if(a[j]<a[i]) {k=a[j];a[j]=a[i];a[i]=k;}
       }
        }
  
   for(i=0;i<20;i++) fprintf(fp,"%d  ",a[i]);
    fclose(fp);
   return 0;
}

就是生成不了txt文件,把随机数输出到txt文件中
ps:产生随机数的算法有问题吗??别人换一种写法就可以生成txt了
2014-03-01 23:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
可能路径问题吧
这能写法属于相对路径  生成的TxT和ExE在同一目录下

DO IT YOURSELF !
2014-03-01 23:54
狸之城堡
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-28
收藏
得分:0 
以下是引用wp231957在2014-3-1 23:54:39的发言:

可能路径问题吧
这能写法属于相对路径  生成的TxT和ExE在同一目录下


那是要改路径么?怎么改
2014-03-02 00:29
快速回复:为什么这样创建不了“output.txt”文本文件???
数据加载中...
 
   



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

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