| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4102 人关注过本帖
标题:从键盘上输入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
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册: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
快速回复:从键盘上输入10个整数,&#160;&#160;然后将这10个整数按输入顺序,偶数 ...
数据加载中...
 
   



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

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