标题:从键盘上输入10个整数,  然后将这10个整数按输入顺序,偶数写入到 ...
只看楼主
第五先生
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2020-5-7
结帖率:40%
 问题点数:0 回复次数:4 
从键盘上输入10个整数,  然后将这10个整数按输入顺序,偶数写入到文件 a.txt 中
【问题描述】从键盘上输入10个整数,  然后将这10个整数按输入顺序,偶数写入到文件 a.txt 中,奇数在屏幕上显示。最后关闭文件 a.txt,并再次打开,从文件中读出数据,并另起一行显示。该作业对文件可能没有自动测试,同学们可以自己完成后检查当前目录下 a.txt 文件是否存在并且文件中中的数据是否正确。

【输入形式】输入10个整数。

【输出形式】奇数输出到屏幕上,偶数输出到a.txt文件中。数据间用一个空格分开.

【样例输入】

34 5 7 18 9 6 13 8 11 10
【样例输出】

屏幕上输出:5 7 9 13 11
文件a.txt中:34 18 6 8 10
搜索更多相关主题的帖子: 整数 文件 输出 输入 txt 
2020-06-02 18:52
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
int main(void)
{
    FILE *fp = NULL;
    fp = fopen("a.txt","w");
    int a[10] = {0};
    for(int i = 0; i < 10; ++i){
        scanf("%d", &a[i]);
    }
    char buf[255];
    printf("屏幕中输出:");
    for(int i = 0; i < 10; ++i){
        if(a[i]%2){
            printf("%d ", a[i]);
        }else{
            memset(buf, 0, 255);
            sprintf(buf, "%d ", a[i]);
            
            int j = 0;
            while(buf[j]){
                fputc(buf[j++], fp);
            }
        }
    }
    fclose(fp);
    FILE *fp1 = NULL;
    fp1 = fopen("a.txt","r");
    printf("\n文件a.txt中:");
    
    for(int i = 0; i < 10; ++i){
        memset(buf, 0, 255);
        fgets(buf, 255, fp1);
        printf("%s ", buf);
    }
    
    fclose(fp1);
    return 0;
}


34 5 7 18 9 6 13 8 11 10
屏幕中输出:5 7 9 13 11
文件a.txt中:34 18 6 8 10

借用一下侯捷的话:勿在浮沙筑高台。
2020-06-02 21:19
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
得分:0 
回复 2楼 吕孟伟
fgets读取的是行,最后应该不需要循环10次读取,直接读1次就行了
2020-06-03 08:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <stdio.h>

int main( void )
{
    // 从键盘上输入10个整数
    int a[10];
    for( size_t i=0; i!=sizeof(a)/sizeof(*a); ++i )
        scanf( "%d", &a[i] );

    // 偶数写入到文件 a.txt 中,奇数在屏幕上显示
    FILE* fp = fopen( "a.txt", "w" );
    for( size_t i=0; i!=sizeof(a)/sizeof(*a); ++i )
        fprintf( a[i]%2==0?fp:stdout, "%d ", a[i] );
    putchar( '\n' );
    fclose( fp );

    // 从文件中读出数据,并另起一行显示
    fp = fopen( "a.txt", "r" );
    for( int value; fscanf(fp,"%d",&value)==1; )
        printf( "%d ", value );
    fclose( fp );

    return 0;
}
2020-06-03 08:58
哭泣的刀w
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-11-20
得分:0 
回复 3楼 fulltimelink
试过了,我也这么觉得
2020-11-20 23:25



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




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

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