|
こんにちは。
get_strInputに二次元配列を渡すメリットが分からなかったので次のように直してみました。
どうでしょう?
ちなみにすずさんのソースが動かなかったのは
結果の出力のprintfが間違っていたからです。
違:printf( "入力された文字 = %s\n",dt[i][GETMAX] );
正:printf( "入力された文字 = %s\n",dt[i]);
これを直すだけでも動くはずです。
#include <stdio.h>
#define GETMAX 51
#define ARRAY 10
extern int get_strInput(char *dt);
int main( void )
{
char dt[ARRAY][GETMAX];
int i;
memset(dt, '\0', sizeof(dt));
printf("%d字以内の文字を%d個入力してください。\n",GETMAX-1,ARRAY);
i = 0;
while(i != ARRAY) {
if(get_strInput( dt[i] ) != 0) {
i++;
}
else {
printf("何も入力されていません。入力はきちんとしましょう。\n");
}
}
for ( i = 0 ; i < ARRAY ; i ++ ) {
printf( "入力された文字 = %s\n", dt[i]);
}
return ( 0 );
}
int get_strInput(char * dt)
{
int iMoji=0,iKetasuu=0;
while((iMoji=getchar()) != EOF ) {
if(iMoji=='\n') {
break;
}
else {
dt[iKetasuu] = iMoji;
iKetasuu++;
if(iKetasuu >= GETMAX) {
printf("\n");
printf("%d字をオーバーしてるので%d字以内で入力してね\n",GETMAX-1,GETMAX-1);
printf("\n");
iKetasuu=0;
iMoji=0;
fflush(stdin);
fflush(stdout);
}
}
}
return (iKetasuu);
}
|