Meta3さん、返信ありがとうございます。
私のやりたいことが完璧に再現できているコードでした。
返信をしていただいた、あたっしゅさん、Meta3さん、に心から感謝いたします。
Meta3さんのコードのコピーではありますがコードと実行結果の例を掲載しておきます。
このコードはⅭ言語を用いたcatの一部機能の自作です。
その機能とは特定のファイルを開き表示すること、
-nを付けて実行した際にファイルごとそれぞれの行の先頭に行番号をふることができます。
コード:
#include<stdio.h>
#include<stdlib.h>
void n_file_print( char * filename)
{
char readline[256] = {'\0'};
int n = 1;
FILE *fp;
fp = fopen( filename, "r");
if (fp == NULL) {
fprintf(stderr, "%sが開けません\n", filename);
exit(1);
}
/* ファイルの終端まで文字を読み取り番号付きで表示する */
while ( fgets(readline, 256, fp) != NULL ) {
printf("%d%s",n++, readline);
}
fclose( fp);
}
void file_print( char * filename)
{
FILE *fp;
int c;
fp = fopen( filename, "r");
if (fp == NULL) {
fprintf(stderr, "%sが開けません\n", filename);
exit(1);
}
while ( ( c = fgetc(fp)) != EOF)
putchar(c);
fclose( fp);
}
int main( int argc, char *argv[])
{
if((argv[1][0]=='-')&&(argv[1][1]=='n')){
for ( int i = 2; i < argc; i++)
n_file_print( argv[ i]);
}else{
for ( int i = 1; i < argc; i++)
file_print( argv[ i]);
}
return 0;
}
実行結果の参考(例としてAA.txtの中身を表示してみる)
-----------------------------------------------
A@DESKTOP-AAAAAAA:~$ gcc code.c
A@DESKTOP-AAAAAAA:~$ ./a.out AA.txt
this
is
a
pen
------------------------------------------------
-------------------------------------------------
A@DESKTOP-AAAAAAA:~$ gcc code.c
A@DESKTOP-AAAAAAA:~$ ./a.out -n AA.txt
1this
2is
3a
4pen
---------------------------------------------------