| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2010 人关注过本帖
标题:檔案處理問題
只看楼主 加入收藏
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
檔案處理問題
題目:
產生 10 個 1 到 64 之間亂數,由小排到大,並寫入純文字檔.txt內.

問題:
寫入進去都連在一起...如何解決 ?
图片附件: 游客没有浏览图片的权限,请 登录注册


程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<fcntl.h>
#include<io.h>
#include<sys/stat.h>
#include<string.h>

#define SIZE 10

int main()
{
    int f1,i,j,temp;
    int num[SIZE];
    char buffer[SIZE];
    srand(time(NULL));
    f1=open("rand.txt",O_WRONLY|O_CREAT|O_TEXT,S_IWRITE);
    if(f1!=-1)
    {
        for(i=1;i<=SIZE;i++)
        {
            do
            {
                num[i-1]=rand()%64+1;
                for(j=1;j<i;j++)
                {
                    if(num[i-1]==num[j-1])
                    {
                        break;
                    }
                }
            }while(j!=i);
            printf("%2d ",num[i-1]);
        }
        printf("\n");
        i=0,j=0;
        while(i<SIZE-1)
        {
            j=i+1;
            while(j<SIZE)
            {
                if(num[j]<num[i])
                {
                    temp=num[j];
                    num[j]=num[i];
                    num[i]=temp;
                }
                j++;
            }
            i++;
        }
        for(i=0;i<SIZE;i++)
        {
            printf("%2d ",num[i]);
            strcpy(buffer,itoa(num[i],buffer,SIZE));
            write(f1,buffer,strlen(buffer));
        }
        close(f1);
        printf("\n");
    }
    else
        printf("Fali\n");
    system("pause");
    return 0;
}
搜索更多相关主题的帖子: num SIZE printf include buffer 
2020-04-04 17:25
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:633
专家分:3045
注 册:2011-4-22
收藏
得分:5 
用sprintf代替strcpy
2020-04-04 18:11
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:5 
加空格啊

https://zh.
2020-04-04 18:19
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:5 
起码可以用strcat向你的buffer尾部加空格吧?

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-04-04 19:18
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:0 
另外楼主的代码里itoa的第三参数应该是进制,用SIZE表达了,尽管巧合是10,但看着有点牙疼。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-04-04 19:24
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
收藏
得分:0 
回复 2楼 zbjzbj
我知道,但該題目含意希望用 write 練習....
2020-04-04 20:09
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
收藏
得分:0 
回复 3楼 lin5161678
我知道
2020-04-04 20:09
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
收藏
得分:0 
回复 5楼 forever74
會改進,因為都剛好 10 ,就順便了哈哈
2020-04-04 20:10
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
收藏
得分:0 
回复 4楼 forever74
不好意思,不行
2020-04-04 20:21
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
收藏
得分:0 
回复 楼主 adssc
已解決
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<fcntl.h>
#include<io.h>
#include<sys/stat.h>

#define SIZE 10

int main()
{
    int f1,i,j,k=0,temp;
    int num[SIZE];
    srand(time(NULL));
    f1=open("rand.txt",O_RDWR|O_CREAT|O_TEXT);
    if(f1!=-1)
    {
        for(i=0;i<SIZE;i++)
        {
            do
            {
                num[i]=rand()%64+1;
                for(j=0;j<i;j++)
                {
                    if(num[i]==num[j])
                    {
                        break;
                    }
                }
            }while(j!=i);
            if(i==0)
                printf("%2d",num[0]);
            else
                printf(",%2d",num[i]);
        }
        printf("\n");
        i=0,j=0;
        while(i<SIZE-1)
        {
            j=i+1;
            while(j<SIZE)
            {
                if(num[j]<num[i])
                {
                    temp=num[j];
                    num[j]=num[i];
                    num[i]=temp;
                }
                j++;
            }
            i++;
        }
        for(i=0;i<SIZE;i++)
        {
            if(i==0)
                printf("%2d",num[0]);
            else
                printf(",%2d",num[i]);
        }
        write(f1,num,sizeof(num));
        close(f1);
        printf("\n");
    }
    else
        printf("Fali\n");
    system("pause");
    return 0;
}
2020-04-05 14:32
快速回复:檔案處理問題
数据加载中...
 
   



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

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