c言語 練習ソースプログラム

[ リスト ]

学生番号と身長(cm)の組を多数入力し、入力したデータをそのまま出力する。ただし、
 身長が180以上の場合だけ'tall'という文字を横に付け加える。入力データのストッパは
 学生番号=身長=0とする

  (入力例)                   (出力例)
  1001  168             1001  168
  1002  176             1002  176
  1004  182             1004  182  tall
     0    0






#include <stdio.h>
#include<string.h>		
#define N 19      		 /*一行の長さ*/
typedef struct H{
	char b[6];    		 /*学生番号*/
	char s[6];   		 /*身長*/
	char k[6];  		 /*結果*/
	}h;      		 /*構造体の型名*/


main ( ){
	FILE *fp1,*fp2;		
	char i[N];		 /*ファイルから取り出した文字を格納する配列*/
	h test;			 /*構造体hの変数*/

	fp1 = fopen("text.txt","w");			
	
	while(gets(i)!=NULL){
		fputs(i,fp1);
		fputc('\n',fp1);
	}

	fclose(fp1);
	
	fp2 = fopen("text.txt","r");
	
	while(fgets((char *)&test,sizeof(h),fp2)!=NULL){	/*構造体のサイズだけ取り込む*/
		memset(i,' ',sizeof(i));		/*配列iを初期化*/
		i[sizeof(i)-1]='\0';			/*配列iにNULL文字をつける*/
		strncpy(i,test.b,sizeof(test.b));	/*学生番号をコピー*/
		strncpy(i+6,test.s,sizeof(test.s));	/*身長をコピー*/
		strncpy(i+12,test.k,sizeof(test.k));	/*結果をコピー*/
		printf("%s",i);
	}

	fclose(fp2);
}		
		
	




イメージ 1




構造体をつかってのコピーはできたけど「tall」結果を打ち出せていない
ここからモジればいいのかな?
問題の主旨が違うような。。。


まぁ進んでみます☆

よしもとブログランキング

もっと見る

プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事