int main(void)
{
int no=0,i,j;
int size=256;
char **s=NULL;
for(j=0;no!=EOF;j++){
char buf[256];
for(i=0;no!='\n';i++){
if(i==0)printf("%d個目 ",j+1);
no=getchar();
if(no!='\n')
buf[i]=no;
}
if(j==0)s=malloc(sizeof(char*)*256);
s[j]=malloc(sizeof(char)*256);
buf[i]='\0';
strcpy(s[j],buf);
if((no=getchar())=='\n')break;
}
for(i=0;i<3;i++)
printf("%s\n",s[i]);
return 0;
}
このプログラムの自分の中での目的は入力されたものを配列bufに格納して、そしてbufの文字数をもとにcharのポインタのポインタであるsを二次元配列を実現させたいなと思っています
getcharでは改行されたのを確認すると一つの文字列の入力の終了を意味させるためにfor文の条件を上記のように記述しました,
また文字列の頭から改行されたことを確認するとすべての入力の終了を意味させるためにbreak文でfor文からでるように記述しました
いざ実行させると最後のprintf文で自分の思うものとは違った表示が出ます
入力
aa
bb
cc
dd
ee
ff
出力
1個目 aa
bb
2個目 cc
3個目 dd
4個目 ee
5個目 ff
6個目
aa
ba
ca
入力出力はともにこのような感じです
理想は
aa
bb
ccと入力すると
1個目aa
2個目bb
3個目cc
と出力されてほしいです