标题:为什么文件输出的数据不正确呢
只看楼主
杏仁巧克力
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2016-4-1
结帖率:85.71%
已结贴  问题点数:20 回复次数:2 
为什么文件输出的数据不正确呢
文件输出:79 ?2 ?9 ?3 ? ?8 ?3 ? ? ?0 ?
7 ?5 ? ? ?2 ?7 ?4 ?7 ?1 ?7 ?
61 ?7 ?3 ?6 ?2 ?1 ? ?4 ?0 ?8 ?
46 ?1 ?6 ?7 ?0 ? ?7 ? ?2 ?3 ?
67 ? ?2 ?1 ?6 ?4 ?5 ?5 ?4 ?4 ?




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



int main()
{
    int a[100];
    int i,number;
    FILE *fp;
   
    srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
    //将随机产生的10000个数放入 input.text
    fp=fopen("input.txt","r+");
    if(fp==NULL)
    {
        printf("open file failed\n");
        return -1;
    }
    for (i=0; i<50; i++)
    {
        if(i%10==0&&i!=0)
        fprintf(fp,"\n");
        number = rand() % 101; //产生0-100的随机数
        fprintf(fp,"%d ", number);
        fscanf(fp,"%d",&a[i]);
    printf("%d ",a);
   
        
    }
    //quicksort(a,50);
    fclose(fp);
   
    //将排好序的数放入output.text
    fp=fopen("output.txt","w");
    if(fp==NULL)
    {
        printf("open file failed\n");
        return -1;
    }
    for(i=0;i<50;i++)
    {
        if(i%10==0&&i!=0)
        fprintf(fp,"\n");
        fprintf(fp,"%d ",a[i]);
    }
    fclose(fp);
    return 0;
}
搜索更多相关主题的帖子: include number 
2016-04-05 21:31
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
得分:20 
fprintf和fscanf在操作文件时,指针会自动后移,所以这两个函数一起用时,指针不再指向你想要的地方,你可以分别注释这两句试试。


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



int main()
{
    int a[100];
    int i, number,ret;
    FILE *fp;

    srand((unsigned)time(NULL)); //用时间做种,每次产生随机数不一样
                                 //将随机产生的10000个数放入 input.text
    fp = fopen("input.txt", "r+");
    if (fp == NULL)
    {
        printf("open file failed\n");
        return -1;
    }
    for (i = 0; i<50; i++)
    {
        if (i % 10 == 0 && i != 0)
            fprintf(fp, "\n");
        number = rand() % 101; //产生0-100的随机数
        fprintf(fp, "%d ", number);
        //fscanf(fp, "%d", &a[i]);
        a[i] = number;
        printf("%d ", a[i]);


    }
    //quicksort(a,50);
    fclose(fp);

    //将排好序的数放入output.text
    fp = fopen("output.txt", "w");
    if (fp == NULL)
    {
        printf("open file failed\n");
        return -1;
    }
    for (i = 0; i<50; i++)
    {
        if (i % 10 == 0 && i != 0)
            fprintf(fp, "\n");
        fprintf(fp, "%d ", a[i]);
    }
    fclose(fp);
    return 0;
}
2016-04-06 09:08
杏仁巧克力
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2016-4-1
得分:0 
回复 2楼 grmmylbs
太谢谢了  
我以后有问题还可以直接问你吗?
2016-04-06 21:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463294-1-1.html




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

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