|
学生番号と身長(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);
}
構造体をつかってのコピーはできたけど「tall」結果を打ち出せていない ここからモジればいいのかな? 問題の主旨が違うような。。。 まぁ進んでみます☆
|

- >
- Yahoo!サービス
- >
- Yahoo!ブログ
- >
- 練習用



