|
ÊÖ¿®ÃÙ¤¯¤Ê¤ê¤Þ¤·¤¿¡£
¤´Äó¼¨¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤òÆÉ¤ß¹þ¤à¤¿¤Ó¤Ë
fopen¤·¤Æ¤¤¤Þ¤¹¤¬¡¢fopen¤Ï¥Õ¥¡¥¤¥ë¤Î½ñ¤¹þ¤ßÆÉ¤ß¹þ¤ßÁ°¤Ë°ìÅÙ
¤·¤Æ¤¯¤À¤µ¤¤¡£»È¤¤½ª¤ï¤Ã¤¿¥Õ¥¡¥¤¥ë¤Ï®¤ä¤«¤Ëfclose¤·¤Þ¤·¤ç¤¦¡£
²¼¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢wfile.txt¤Ï"w+"¥â¡¼¥É¤Çfopen¤·¤Æ¤¤¤Þ¤¹¡£
"w+"¥â¡¼¥É¤Ï¥Õ¥¡¥¤¥ë¤ò¿·µ¬ºîÀ®¤·¤Æ½ñ¤¹þ¤ß+ÆÉ¤ß¹þ¤ß¤Îưºî¤ò
²Äǽ¤Ë¤·¤Þ¤¹¡£
Äó¼¨¤Î¥×¥í¥°¥é¥à¤Ç¤Ï
¡¡fprintf(wfp, "%s\n", s1); /*ÈÖ¹æ¤òwfile.txt¤Ë½ñ¤¹þ¤ß*/
¡¡fprintf(wfp, "%s\n", s2); /*¥Ñ¥¹¥ï¡¼¥É¤òwfile.txt¤Ë½ñ¤¹þ¤ß*/
¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ì¤Ç¤¹¤È¼¡¤Ëwfile.txt¤ËÂФ·¤ÆÈÖ¹æ¤òÄ´¤Ù¤Ë¹Ô¤¯
¤È¤¤Ë¡¢¥Ñ¥¹¥ï¡¼¥É¤ÈƱ¤¸¤â¤Î¤òÆþÎϤ·¤Æ¤âOK¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
²¼¤Î¥×¥í¥°¥é¥à¤Ç¤ÏÈÖ¹æ¤Î¸å¤Ë\n¤ò½ñ¤¹þ¤ó¤Ç¤¤¤Þ¤»¤ó¡£
Ʊ¤¸¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎŤµ
¤ò¸ÇÄê¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£²ÄÊѤǤ¹¤È¡¢Êѹ¹¤ÇŤµ¤¬°Û¤Ê¤Ã¤¿¾ì¹ç¡¢
¤½¤ì°Ê¹ß¤Î¥Ç¡¼¥¿¤òÁ´¤Æ¤º¤é¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£²¼¤Î¥×¥í¥°¥é¥à¤Ç¤Ï
Ťµ¤¬¤è¤¯¤ï¤«¤é¤Ê¤¤¤Î¤Ç¡¢ÈÖ¹æ¤È¥Ñ¥¹¥ï¡¼¥É¤ÎŤµ¤ò¥Þ¥¯¥íÄêµÁ
¤·¤Æ¤¤¤Þ¤¹¡£
¡¡sprintf(nform, "%%%ds", NLEN);
¡¡sprintf(pform, "%%%ds", PLEN);
¤³¤ì¤Ï¡¢¥Þ¥¯¥íÄêµÁ¤ò½ñ¼°¤ËÈ¿±Ç¤¹¤ë¤¿¤á¤Î½èÃ֤Ǥ¹¡£
¡¡fprintf(wfp, "%*s", -NLEN, s1);
¡¡fprintf(wfp, "%*s\n", -PLEN, s2);
¤³¤ì¤Ï¡¢wfile.txt¤Ë¸ÇÄê¤ÎŤµ¤ÇÈÖ¹æ¤È¥Ñ¥¹¥ï¡¼¥É¤ò½ñ¤¹þ¤à½èÍý¤Ç¤¹¡£
¸æÄó¼¨¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥Í¥¹¥È¤¬¿¼¤¤¤Î¤Ç¡¢ÈÖ¹æ¤Î¥Á¥§¥Ã¥¯¡¢¥Ñ¥¹¥ï¡¼¥É
¤Î¥Á¥§¥Ã¥¯¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹½èÍý¤ò¤½¤ì¤¾¤ìÆÈΩ¤µ¤»¤Þ¤·¤¿¡£
¡¡(void)getchar();
¡¡printf("\t\t¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n");
¤³¤Îgetchar¤Ï¡¢¼Õ¤Ã¤Æ¿ô»ú°Ê³°¤òÆþÎϤ·¤¿¤È¤¤Ë¡¢ÆþÎϥХåե¡¤Ë
ÆþÎÏÃͤ¬»Ä¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢ÆÉ¤ß¼Î¤Æ¤Æ¤¤¤Þ¤¹¡£
#include <stdio.h>
#include <string.h>
#define NLEN 10 /* ÈÖ¹æ¤ÎŤµ */
#define PLEN 32 /* ¥Ñ¥¹¥ï¡¼¥É¤ÎŤµ */
int main(void)
{
FILE *rfp1, *rfp2, *wfp;
char s1[NLEN+PLEN+1], s2[PLEN+1];
char num[NLEN+1], pas[PLEN+1], newpas[PLEN+1];
char nform[20], pform[20];
int find, len;
int res;
/* ÈÖ¹æ¤È¥Ñ¥¹¥ï¡¼¥É¤ÎÆÉ¤ß¹þ¤ß½ñ¼°¤òºîÀ® */
sprintf(nform, "%%%ds", NLEN);
sprintf(pform, "%%%ds", PLEN);
if ((rfp1 = fopen("rfile1.txt", "r")) == NULL) {
printf("rfile1.txt open error!!\n");
return (1);
}
if ((rfp2 = fopen("rfile2.txt", "r")) == NULL) {
printf("rfile2.txt open error!!\n");
return (1);
}
/* wfile.txt¤ò½ñ¤¹þ¤ß¡ÜÆÉ¤ß¹þ¤ß¤Ç¥ª¡¼¥×¥ó */
if ((wfp = fopen("wfile.txt", "w+")) == NULL) {
printf("wfile.txt open error!!\n");
return (1);
}
for (;;) {
if (fscanf(rfp1, nform, s1) != 1) break;
if (fscanf(rfp2, pform, s2) != 1) break;
fprintf(wfp, "%*s", -NLEN, s1); /*ÈÖ¹æ¤òwfile.txt¤Ë½ñ¤¹þ¤ß*/
fprintf(wfp, "%*s\n", -PLEN, s2); /*¥Ñ¥¹¥ï¡¼¥É¤òwfile.txt¤Ë½ñ¤¹þ¤ß*/
}
fclose(rfp1);
fclose(rfp2);
printf("ÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n");
printf(">>>");
scanf(nform, num);
find = 0;
fseek(wfp, 0L, SEEK_SET);
len = strlen(num);
/* wfile.txt¤ËÆþÎÏÈֹ椬¤¢¤ë¤« */
while (1) {
if (fgets(s1, sizeof(s1), wfp) == NULL) break;
if (strncmp(num, s1, len)==0){
find++;
printf("ÈÖ¹æ¡û\n");
break;
}
}
/* °ìÃ×Èֹ椬¤¢¤ì¤Ð¥Ñ¥¹¥ï¡¼¥É¥Á¥§¥Ã¥¯ */
if (find != 0) {
printf("¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n");
printf(">>>");
scanf("%s", pas);
len = strlen(pas);
if (strncmp(pas, s1+NLEN, len) == 0) {
printf("¥Ñ¥¹¥ï¡¼¥É¡û\n");
}
else {
printf("¡ß¥Ñ¥¹¥ï¡¼¥É¥¨¥é¡¼!\n");
fclose(wfp);
return (0);
}
}
else {
printf("¡ßÈֹ楨¥é¡¼!\n");
fclose(wfp);
return (0);
}
/* ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹½èÍý */
printf("[1.¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹]\t[2.½ªÎ»]\n");
for (;;){
printf("ưºî>>>");
if(scanf("%d", &res) == 1){
if(res == 1){
printf("¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n");
printf(">>>");
scanf(pform, newpas);
fseek(wfp, -PLEN, SEEK_CUR);
fprintf(wfp, "%*s\n", -PLEN, newpas);
break;
}
else if(res == 2){
break;
}
else{
printf("\t\t1¤«2¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n");
}
}
else{
(void)getchar();
printf("\t\t¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤\n");
}
}
fclose(wfp);
return(0);
}
|